solidity:1. 变量和常量
Posted 孙绿如叶~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了solidity:1. 变量和常量相关的知识,希望对你有一定的参考价值。
一 . Solidity 支持三种类型的变量:
- 状态变量 – 变量值永久保存在合约存储空间中的变量。
- 局部变量 – 变量值仅在函数执行过程中有效的变量,函数退出后,变量无效。
- 全局变量 – 保存在全局命名空间,用于获取区块链相关信息的特殊变量。
-
状态变量
contract Test { string public name; function setName(string memory _n) public { name = _n; } }
-
局部变量
contract Test { function get()public pure returns(uint){ uint a = 1; uint b = 2; return a+b; } }
-
全局变量
contract Test { function get()public view returns(uint){ return block.number; } }
更多的全局变量:
二. Solidity 支持两种类型的常量:
- constant – 可修饰字符串、值类型,对于constant 常量, 他的值在编译时确定。
- immutable – 可修饰值类型,对于immutable 常量, 他的值在部署时确定。
ps:使用constant 和immutable 可以节省gas
contract A {
string constant s1 = "abc";
// string immutable s2 = "abc"; //error
uint public immutable a;
address public immutable owner = msg.sender;
// uint[3] constant a = [1,2,3]; //error
constructor(uint _a){
a = _a;
}
}
以上是关于solidity:1. 变量和常量的主要内容,如果未能解决你的问题,请参考以下文章