這篇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社群共同討論唷!
完整教學:從零到入門的幣圈新手教學,一起學習區塊鏈知識