Универсальная функция для добавления элемента массива путем передачи массива указателей - PullRequest
0 голосов
/ 31 октября 2019
// Demographics structure
package main
import "fmt"

type Demographics struct {
      Race              *UnionNullArrayRace
}

type UnionNullArrayRace struct {
      ArrayRace []*Race
}

type Race struct {
      Code  *UnionNullString
}

type UnionNullString struct {
      String    string
}

demographics := &model.Demographics{}

// Above Works Properly to append the raceArrayData

raceArrayData := &model.Race{}
demographics.Race.ArrayRace = append(demographics.Race.ArrayRace, raceArrayData)
    //************************************************************************************
//* Error: Can't use demographics.Race.ArrayRace (type[]*Race) as type []*interface{}
    //************************************************************************************
testArray(demographics.Race.ArrayRace, raceArrayData)

//Below is the generic function due to submission issue in editor issues with SOF

func testArray(canonicalLocation []*interface{}, canonicalArray interface{}) {
                canonicalLocation = 
  append(canonicalLocation, &canonicalArray) 
}

В Go есть ли способ создать универсальную функцию для добавления элемента массива путем передачи массива указателей на определенный тип, как в примере выше?

Прямо сейчас я 'm получает ошибку Can't use demographics.Race.ArrayRace (type[]*Race) as type []*interface{}

Если нет, какой будет синтаксис для использования отражения, добавляемого для приведенного выше примера?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...