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

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

如何在go中使用帶有范圍的自定義int類型?

如何在go中使用帶有范圍的自定義int類型?

Go
慕尼黑8549860 2021-05-05 22:38:42
我有type DocId intfunc foo(documents []String) {    for i := range documents {        id := DocId(i)        ...    }}如何擺脫顯式轉(zhuǎn)換行?DocIds的意思是類型索引單個文檔。我想要的更像是:func foo(documents []String) {    for id := range documents {        ... // id gets used as the DocId that it damn well *IS*    }}當(dāng)我嘗試將范圍中的id用作DocId時,即使DocId是一個int,這也給我“無效的操作:...(int和DocId類型不匹配)”。
查看完整描述

2 回答

?
守著星空守著你

TA貢獻1799條經(jīng)驗 獲得超8個贊

只有未類型化的常量可以自動轉(zhuǎn)換為正確的類型。


您可以找到一些示例,其中不需要為該類型的常量使用強制轉(zhuǎn)換,例如此線程。從規(guī)格:


如果一個操作數(shù)是未類型化的常量,而另一個操作數(shù)不是,則該常量將轉(zhuǎn)換為另一種操作數(shù)的類型


但是在這里,range將迭代值顯式分配給相應(yīng)的迭代變量(i int, T a[i]),使i和int。(來自規(guī)范“ For statement ”)


對于其他所有情況,都需要顯式強制轉(zhuǎn)換。規(guī)范

的“轉(zhuǎn)換”部分沒有提到“自動”類型轉(zhuǎn)換(與自動接口轉(zhuǎn)換相反,這種轉(zhuǎn)換一直發(fā)生:)interface{}。


該線程添加


type A int

type B int


...


var a A = 5

var b B = a    // Compiler ERROR!!!!!!

本質(zhì)上,由于(幾乎)所有類型都是唯一的,因此即使沒有相同的基本表示形式和基本操作的兩種類型,也必須進行強制轉(zhuǎn)換。[...]

通過強制您明確告知編譯器何時要進行轉(zhuǎn)換,從而使語言具有類型安全性。


查看完整回答
反對 回復(fù) 2021-05-17
  • 2 回答
  • 0 關(guān)注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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