Solidity学习笔记:变量、Constant和Immutable
2024/05/25
变量
// Solidity文件的开头一般是许可证声明,用于指明合约的许可证类型// SPDX-License-Identifier: MIT
// 合约所使用的 Solidity 编译器版本。^0.8.19 表示这个合约可以使用 0.8.19 及其以上的版本,但不包括 0.9.0。pragma solidity ^0.8.19;
// 定义了一个名为 Simple 的合约contract Simple { bool flag = true; int256 number = -256; uint256 x = 256; string y = "hello"; // 变长字节数组,用于存储任意长度的二进制数据。 bytes z = "cat"; // 定长字节数组,bytes1, bytes2, bytes3, ..., bytes32 代表了从1到32的字节序列。 bytes32 i = "cat2" // 地址类型,是一个可以发送以太币的地址。可以是你的智能合约账户。 address add = 0x6be8C472C200D89b06C56013F3BCbD2FE91b966e;}
Constant和Immutable
Constant和Immutable都可以声明不可变的变量
Constant变量必须在初始化的时候进行赋值
Immutable变量和Constant类似,但是还可以在构造函数内设置,之后不能修改。
pragma solidity >=0.7.4;
uint constant X = 32**22 + 8;
contract C { string constant TEXT = "abc";
uint256 public immutable MY_UINT; address immutable OWNER = msg.sender;
constructor(uint256 _myUint) { MY_ADDRESS = msg.sender; MY_UINT = _myUint; }}