Solidity入門教學

Solidity入門教學,從零到看懂智能合約(1)

上次更新時間:2023-08-04

這篇Solidity入門教學,是教你關於開始學習Solidity相關的知識,如SPDX License 授權宣告、Solidity版本宣告及合約、Function方法函式等

More...

上一篇提到Remix、如何透過區塊鏈瀏覽器查看合約以及BlockChain模擬器來了解為什麼區塊鏈無法竄改,這篇則是教你一些需要先了解的基礎知識!

上一篇:Solidity入門教學,從零到看懂智能合約(0)

SPDX License 授權宣告

通常智能合約都會透明,但不是每個人都希望自己的合約被複製或是改編,所以常見的有兩種標示,如果你的合約程式碼開源可以在開頭標示如下:

// SPDX-License-Identifier: MIT

若是不希望被改寫或複製使用,則可以標示如下:

// SPDX-License-Identifier: UNLICENSED

不過當然不止這兩種用法,想知道更詳細的SPDX資訊可以參考這篇SPDX ID,智能合約通常都是第一種為常見的,所以練習時可以先在Contract開頭輸入第一種即可。

如果沒有打的話他會跳出 "Warning:SPDX license identifier not provided in source file.",所以要記得打上會比較好喔!

Solidity 版本宣告

除了授權外還需要標示合約所使用的Solidity版本,下方的範例就是Solidity版本不能低於0.8.0,這裡也提醒記得補上分號";",才不會顯示錯誤!

pragma solidity ^0.8.0;

下方的表示則是可以使用大於等於0.7.0與小於0.8.0的Solidity版本編譯。

pragma solidity >=0.7.0 <0.8.0;

會需要設定版本範圍是因為假如目前的0.7.0版本有什麼Bug,就能調整為0.7.1的版本來修復Bug。

Solidity 合約宣告

這個是命名合約的名稱,假如之後有導入合約的話,使用的是你在這裡命名的合約名稱,而非合約的檔案名稱(.sol結尾)。

contract Geekaz{
}

Solidity 方法函式

先用簡單的函式說明,FunctionName可以自行設定,但不能與裡面的保留字重疊,像是public、uint這類的。

在這之前先建立一個可見的正整數a,之後這個函式的設定我們可以輸入uint(正整數),輸入的數字為x,a會等於x,所以a就會被改變。

uint256 public a;
function FunctionName(uint x) public {
    a = x;
}

Solidity 數值類型

目前常見的數值類型分別有bool(布林值)、string(字串)、int(整數)、uint(正整數),而int/uint有時會看到uint8、uint16、uint32...uint256等等。

舉例來說uint8就是能儲存2的8次方,也就是0~255的數字,超過的話就會顯示Error,因為是從0開始所以到255總共會有256個數字。

總結

今天所提到的如下,可以在Remix試試,下一片會提到public、internal、external、private等等的,以及差別在哪裡!

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract Geekaz{
    uint256 public a;
    function FunctionName(uint x) public {
        a = x;
    }
}

這次的第一篇教學就到這邊,之後就直接從合約來教你如何看懂合約,熊市特別需要學習,所以請大家學習多多分享,也可以到阿高的Discord社群共同討論唷!

完整教學:從零到入門的幣圈新手教學,一起學習區塊鏈知識

科技宅阿高


平時就常關注手機、電腦與科技相關事物,在撰寫文章時找到樂趣,所以就創立了部落格來分享我對新科技的看法,同時也想讓大眾更能了解生活中的科技!

留言區

此電子郵件地址不會公開,僅作通知回覆用,*為必填欄位。

{"email":"信箱錯誤,Email address invalid!","url":"網站網址錯誤,Website address invalid!","required":"必填資訊未填,Required field missing!"}