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中文网其他相关文章!