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

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

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

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

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

2 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

您可以使用與參數類型相同的匿名結構:bar()


func bar(arg struct {

    Prop int

}) {

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

}

則以下為有效代碼:


res := foo()

bar(res)

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


Received: {Prop:1}

這是可能的,因為如果所有參數都可分配給 的參數類型,并且 的匿名結構返回類型可分配給 的匿名結構參數,則調用是有效的。bar(res)bar()foo()bar()


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


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

TA貢獻1827條經驗 獲得超9個贊

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

不,因為...

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

不。不能在編譯時使用反射。


查看完整回答
反對 回復 2022-08-01
  • 2 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號