為了省略過多的贅字,我們通稱 0.5.0 以上為新版。
callcode
語法在新版被禁用了,改由 delegatecall
所取代。
suicide
語法在新版被禁用了,改由 selfdestruct
所取代。
sha3
語法在新版被禁用了,改由 keccak256
所取代。
keccak256("ab", "c");
keccak256("abc");
keccak256(0x616263);
keccak256(6382179);
keccak256(97, 98, 99);
因為單用一個 throw
代表所有的錯誤情況實在是太籠統了,所以在 v0.4.21 版的時候,拆成了三個語法分別是 revert
、require
、assert
,其實在之前的版本使用到 throw
語法已經會跳出警告了,但到了新版開始被完全移除,會導致無法編譯。
編譯錯誤
if (x > 100) throw;
編譯正常
require(x > 100);