Solidity速成課程 - 第二部分:智能合約
簡介
Solidity 是一種高級編程語言,用於在以太坊區塊鏈上編寫智能合約。它受到 JavaScript、Python 和 C 的影響。在本速成課程的這一部分中,我們將介紹 Solidity 合約的基本語法以及如何編寫智能合約。
Solidity - 合約語法
Solidity 合約是代碼(函數)和數據(狀態)的集合,駐留在以太坊區塊鏈上的特定地址。每個 Solidity 合約都以版本聲明開頭,該聲明指定編譯器版本。
<code class="language-solidity">// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract MyFirstContract { // 状态变量 uint public myNumber; string public myString; // 构造函数 - 合约部署时仅运行一次 constructor(uint _myNumber, string memory _myString) { myNumber = _myNumber; myString = _myString; } // 更新数字的函数 function setNumber(uint _newNumber) public { myNumber = _newNumber; } // 更新字符串的函数 function setString(string memory _newString) public { myString = _newString; } }</code>
contract MyFirstContract {}
定義了合約。 uint
和 string
變量存儲區塊鏈上的持久性數據。 setNumber
和 setString
函數修改合約的狀態。 Solidity - 智能合約
智能合約是一種具有預定義規則的自執行合約。部署後,它與用戶和其他合約交互。
以下是一個允許用戶存儲和檢索其喜歡的數字的智能合約示例。
<code class="language-solidity">// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract FavoriteNumber { uint private favoriteNumber; // 当数字更改时通知的事件 event NumberUpdated(uint newNumber); // 设置喜欢的数字的函数 function setFavoriteNumber(uint _number) public { favoriteNumber = _number; emit NumberUpdated(_number); } // 获取喜欢的数字的函数 function getFavoriteNumber() public view returns (uint) { return favoriteNumber; } }</code>
setFavoriteNumber
- 允許用戶存儲數字。 getFavoriteNumber
- 檢索存儲的數字,無需修改區塊鏈。 emit
語句 - 更新數字時記錄事件。 部署合約
要部署合約,您可以使用 Remix IDE 或 Hardhat。
結論
在本部分中,我們介紹了基本的 Solidity 合約語法並創建了一個簡單的智能合約。
敬請期待第三部分!
以上是固體速效課程 - 零件智能合約的詳細內容。更多資訊請關注PHP中文網其他相關文章!