Как вы возвращаете переменную не примитивного типа в golang
В идеале вы хотите, чтобы вспомогательный файл go создавался как одиночный в терминах OOPS.
package somehelper type SomeData struct { SubData1 SubDataType1 SubData2 SubDataType2 } var singleton *SomeData var once sync.Once func Createsingleton(data1 SubDataType1, data2 SubDataType2) { once.Do(func() { singleton = &SomeData{SubData1:data1, SubData2: data2} }) } func GetSingleton() *SomeData { if singleton == nil { panic("SomeDataHelper needs to be instantiated!!!") } return singleton } func (i *SomeData) GetSubData1() SubData1{ return i.SubData1 }
Похоже, bigquery.NewClient возвращает (*Client, error), поэтому, если вы пытаетесь инкапсулировать это, вы, вероятно, можете просто написать функцию, которая возвращает *bigquery.Client
bigquery.NewClient
(*Client, error)
*bigquery.Client