你如何 return golang 中的非原始类型变量

How do you return a non primitive type variable in golang

你如何return golang中的非原始类型变量

看起来像 bigquery.NewClient returns a (*Client, error),所以如果你想封装它,你可以只写一个 returns a *bigquery.Client

理想情况下,您希望将 helper 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
}