第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

去。接口中單值上下文中的多值

去。接口中單值上下文中的多值

Go
蕪湖不蕪 2022-01-10 17:06:52
我的情況下,我不明白這個(gè)解釋。可能是這樣,因?yàn)槲蚁胧褂媒缑鎚ultiple-value NewObject() in single-value context在以下情況下出現(xiàn)錯(cuò)誤type Facade interface {    GetOne() int}type ObjectOne struct{    one int}func NewObject()(Facade, error){    o := &ObjectOne{}    return o , errors.New("Some funny error")}func(o * ObjectOne)GetOne()int{    return 1}func SomeWhereInCode(){    newFacade , err := Facade(NewObject())// And here. I get error probbably because Facade constructor return one arguments (interface) and NewObject() return two. How should be ? }我也error嘗試過作為指針傳遞,ObjectOne但仍然得到錯(cuò)誤編譯器type Facade interface {    GetOne() int}type ObjectOne struct{    one int}func NewObject(facadeError* error)(Facade, error){    o := &ObjectOne{}    *facadeError = errors.New("Some funny error")    return o , *facadeError}func(o * ObjectOne)GetOne()int{    return 1}func SomeWhereInCode(){    var facadeError = error()    newFacade , err := Facade(NewObject(&facadeError))}
查看完整描述

2 回答

?
縹緲止盈

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊

在表達(dá)式中:

newFacade , err := Facade(NewObject())

Facade(NewObject())不是構(gòu)造函數(shù),而是顯式類型轉(zhuǎn)換。您根本不需要它,因?yàn)?code>NewObject()已經(jīng)是構(gòu)造函數(shù),它返回一個(gè)Facade類型和一個(gè)錯(cuò)誤。所以就:

newFacade , err := NewObject()

在我看來應(yīng)該工作。


查看完整回答
反對(duì) 回復(fù) 2022-01-10
?
呼啦一陣風(fēng)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊

問題是 NewObject 有多個(gè)返回值,您不能鏈接或返回多個(gè)值的下一個(gè)函數(shù)(在同一行中)。


不清楚為什么您要嘗試在您認(rèn)為應(yīng)該是 Facade 的返回值上調(diào)用 Facade(...),您是否在進(jìn)行類型轉(zhuǎn)換?


嘗試取出值并處理錯(cuò)誤,然后調(diào)用外部函數(shù)。


type Facade interface {

    GetOne() int

}


type ObjectOne struct{

    one int

}


func NewObject()(Facade, error){

    o := &ObjectOne{}

    return o , errors.New("Some funny error")

}


func(o * ObjectOne)GetOne()int{

    return 1

}


func SomeWhereInCode(){

    newFacade , err := NewObject())

    if err != nil {

        // handle err or panic

    }

    Facade(newFacade)

}


查看完整回答
反對(duì) 回復(fù) 2022-01-10
  • 2 回答
  • 0 關(guān)注
  • 152 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)