3
我玩弄一些代碼,並提出以下意見:何時將數字文字分配給默認類型?
let x = 1;
let() = x;
error: mismatched types [E0308]
note: expected type `_`
note: found type `()`
這顯然會失敗,但我期待錯誤地指出,預期的類型是i32
,不_
。我發現同樣的情況發生在未指定類型的浮動字面上,例如1.0
。
這是爲什麼?不應該將該類型稱爲默認類型?
更新:鐵鏽1.12,錯誤消息是更多的信息:
expected integral variable, found()
= note: expected type `{integer}`
= note: found type `()`
我覺得失敗太明顯了。 typechecker沒有足夠的實際插入默認值,因爲這是行不通的。我只見過錯誤消息中的默認值,當時這是一系列關閉和泛型方法 –