以前可以使用 var
來宣告變數,現在禁止使用了
舊版本的程式碼 (v0.5 之前)
pragma solidity ^0.4.25;
contract NewContract {
var a = 1;
}
新版本的程式碼 (v0.5 以後)
pragma solidity >=0.5.0 <0.7.0;
contract NewContract {
uint a = 1;
}
在變數的存取範圍的部分,Solidity 也向 Javascript 看齊,從 function scope 改使用 block scope 了。
舊版本的程式碼 (v0.5 之前)
pragma solidity ^0.4.0;
contract ScopingErrors {
function scoping() {
uint i = 0;
while (i++ < 1) {
uint same1 = 0;
}
while (i++ < 2) {
uint same1 = 0; // 會發生錯誤
}
}
}
新版本的程式碼 (v0.5 以後)
pragma solidity >=0.5.0 <0.7.0;
contract ScopingErrors {
function scoping () public {
uint i = 0;
while (i++ < 1) {
uint same1 = 0;
}
while (i++ < 2) {
uint same1 = 0; // 不會發生錯誤
}
}
}