W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
十進制和十六進制數(shù)字文字可以隱式轉(zhuǎn)換為任何足夠大的整數(shù)類型,無需截斷即可表示:
uint8 a = 12; // fine uint32 b = 1234; // fine uint16 c = 0x123456; // fails, since it would have to truncate to 0x3456
筆記
在 0.8.0 版本之前,任何十進制或十六進制數(shù)字文字都可以顯式轉(zhuǎn)換為整數(shù)類型。從 0.8.0 開始,此類顯式轉(zhuǎn)換與隱式轉(zhuǎn)換一樣嚴格,即,僅當文字符合結(jié)果范圍時才允許它們。
十進制數(shù)字文字不能隱式轉(zhuǎn)換為固定大小的字節(jié)數(shù)組。十六進制數(shù)字文字可以,但前提是十六進制數(shù)字的數(shù)量完全適合字節(jié)類型的大小。作為一個例外,具有零值的十進制和十六進制文字都可以轉(zhuǎn)換為任何固定大小的字節(jié)類型:
bytes2 a = 54321; // not allowed bytes2 b = 0x12; // not allowed bytes2 c = 0x123; // not allowed bytes2 d = 0x1234; // fine bytes2 e = 0x0012; // fine bytes4 f = 0; // fine bytes4 g = 0x0; // fine
字符串文字和十六進制字符串文字可以隱式轉(zhuǎn)換為固定大小的字節(jié)數(shù)組,如果它們的字符數(shù)與字節(jié)類型的大小匹配:
bytes2 a = hex"1234"; // fine bytes2 b = "xy"; // fine bytes2 c = hex"12"; // not allowed bytes2 d = hex"123"; // not allowed bytes2 e = "x"; // not allowed bytes2 f = "xyz"; // not allowed
如地址文字中所述,通過校驗和測試的正確大小的十六進制文字屬于address
類型。沒有其他文字可以隱式轉(zhuǎn)換為該address
類型。
從bytes20
或任何整數(shù)類型的顯式轉(zhuǎn)換address
導(dǎo)致.address payable
可以轉(zhuǎn)換為via 。address a
address payable
payable(a)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: