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

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

范圍內的類型重新聲明順序是否應受外部范圍的影響?

范圍內的類型重新聲明順序是否應受外部范圍的影響?

Go
慕工程0101907 2021-11-08 16:02:29
我收到一條奇怪的錯誤消息cannot use []feed literal (type []feed) as type []feed in field value,經過一番擺弄和最小化源之后,我發(fā)現這種情況似乎會產生錯誤:type user struct {    Feeds []feed}type feed struct{}func fn() {    type user struct {        Feeds []feed // seems to refer to the outer feed type    }    type feed struct{}    _ = user{        // "cannot use []feed literal (type []feed) as type []feed in field value"        Feeds: []feed{},    }}http://play.golang.org/p/gNIGhPwAgl這是預期的行為還是錯誤?我花了一些時間閱讀語言規(guī)范,但找不到任何明確說明范圍中的類型聲明順序應該如何工作的內容。順序在外部作用域中無關緊要,但在內部作用域中卻很重要,這有點不直觀。
查看完整描述

2 回答

?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

這是語言規(guī)范。


引用相關部分:聲明和范圍:


在函數內聲明的類型標識符的范圍從TypeSpec中的標識符開始,并在最里面的包含塊的末尾結束。


在函數內聲明的類型僅在類型標識符(被聲明)的范圍內。在此之前,他們不是。


type user struct {

    Feeds []feed // This can only be the outer feed type

}


type feed struct{} // new feed type is in scope from this line


查看完整回答
反對 回復 2021-11-08
?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

在 golang-nuts 列表上找到了討論這個的線程

簡而言之,這是因為聲明的順序在函數內部很重要,但在外部無關緊要。在包范圍內,符號按照滿足其依賴關系的順序聲明,與它們在頁面上的外觀無關;在函數內部,它們按詞法順序聲明。片刻的反思將表明為什么這種不一致是有價值的,盡管它是不一致的。
-搶


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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