Как вы возвращаете переменную не примитивного типа в Голанге - PullRequest
0 голосов
/ 29 октября 2018

Как вы возвращаете переменную не примитивного типа в golang

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

В идеале вы хотите, чтобы вспомогательный файл 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
}
0 голосов
/ 29 октября 2018

Похоже, bigquery.NewClient возвращает (*Client, error), поэтому, если вы пытаетесь инкапсулировать это, вы, вероятно, можете просто написать функцию, которая возвращает *bigquery.Client

...