iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
Modern Web

區塊鏈&DAPP介紹系列 第 17

[區塊鏈&DAPP介紹 Day17] Solidity 教學 - using-for

今天來延續一點昨天聊到的 libraries 的另一個應用 using-for

using-for 的用法,先來看看下面範例

這是從 官網,參考的一個範例

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.7;

//定義一個 Data struct 裏面的有一個 mapping 的屬性
struct Data { mapping(uint => bool) flags; }

//這邊做了一些 mapping 的新增刪除的方法
library Set {
    function insert(Data storage self, uint value)
        public
        returns (bool)
    {
        if (self.flags[value])
            return false;
        self.flags[value] = true;
        return true;
    }

    function remove(Data storage self, uint value)
        public
        returns (bool)
    {
        if (!self.flags[value])
            return false;
        self.flags[value] = false;
        return true;
    }

}


contract C {
    using Set for Data; //這邊把 Set 指定給 Data

    //宣告一個 Data型別的變數 叫做 knowValues
    Data knownValues;

    function register(uint value) public {
        //這邊就可以直接使用 Insert的方法
        require(knownValues.insert(value));
    }
}

這邊再補充一下,如果要從別的檔案載入 libraries ,就需要用到 import 這個指令,看一下下面的範例

import “filename”;

透過上述語法,就可以引入其他檔案的合約 & libraries 。


上一篇
[區塊鏈&DAPP介紹 Day16] Solidity 教學 - libraries
下一篇
[區塊鏈&DAPP介紹 Day18] 智能合約中什麼是 Gas
系列文
區塊鏈&DAPP介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言