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

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

我可以為函數(shù)的返回類型起別名嗎?

我可以為函數(shù)的返回類型起別名嗎?

Go
慕絲7291255 2022-08-01 15:13:09
我有一個(gè)返回匿名結(jié)構(gòu)的函數(shù)。生成此函數(shù),因此我無法更改代碼或?yàn)榉祷刂祫?chuàng)建類型。func foo() struct {    Prop int} {    result := new(struct {        Prop int    })    result.Prop = 1    return *result}在代碼庫的其他地方,我想定義一個(gè)函數(shù),該函數(shù)接受返回類型的參數(shù)bar()foo()func bar(arg ReturnTypeOfFoo) {    // ...}我可以在不手動定義類型的情況下執(zhí)行此操作嗎?我可以做某種反思嗎?ReturnTypeOfFoofoo()
查看完整描述

2 回答

?
吃雞游戲

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

您可以使用與參數(shù)類型相同的匿名結(jié)構(gòu):bar()


func bar(arg struct {

    Prop int

}) {

    fmt.Printf("Received: %+v\n", arg)

}

則以下為有效代碼:


res := foo()

bar(res)

和輸出(在Go Playground上嘗試):


Received: {Prop:1}

這是可能的,因?yàn)槿绻袇?shù)都可分配給 的參數(shù)類型,并且 的匿名結(jié)構(gòu)返回類型可分配給 的匿名結(jié)構(gòu)參數(shù),則調(diào)用是有效的。bar(res)bar()foo()bar()


如果你需要它是動態(tài)的(例如,結(jié)果類型在重新生成時(shí)可能會改變),你可以使用go/parser包來解析生成的源,并使用相同的參數(shù)類型生成,習(xí)慣上在運(yùn)行時(shí)執(zhí)行。您應(yīng)該使生成/更改的生成過程的這一部分,因此并且將保持同步。foo()bar()go generatefoofoobar


查看完整回答
反對 回復(fù) 2022-08-01
?
素胚勾勒不出你

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

我可以在不手動定義 ReturnTypeOfFoo 類型的情況下執(zhí)行此操作嗎?

不,因?yàn)?..

我可以在foo()上做一些反思嗎?

不。不能在編譯時(shí)使用反射。


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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