iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 5
0
Blockchain

有什麼新鮮事發生在 Ethereum系列 第 5

Day05 - 使用變數方式的更變

  • 分享至 

  • xImage
  •  

禁止使用 var

以前可以使用 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;
}

function scope 改為 block scope 變數

在變數的存取範圍的部分,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; // 不會發生錯誤
        }
    }
}

資料來源


上一篇
Day04 - 可見度和 mutability
下一篇
Day06 - Solidity 新版禁止使用的函式
系列文
有什麼新鮮事發生在 Ethereum30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言