在solidity中,声明但没赋值的变量都有它的初始值或默认值。
boolean:falsestring:""int:0uint:0enum:枚举中的第一个元素address:0x0000000000000000000000000000000000000000(或address(0))functioninternal: 空白函数external: 空白函数
可以使用public变量的getter函数验证上面的初始值是否正确:
bool public _bool; //false
string public _string; //""
int public _int; //0
uint public _uint; //0
address public _address; //0x0000000000000000000000000000000000000000
enum ActionSet {Buy,Hold,Sell}
ActionSet public _enum; //第一个元素0
function fi() internal {} //internal空白函数
function fe() external {} //external空白函数
映射
mapping:所有元素都为其默认值得mapping结构体
struct:所有成员设为默认值的结构体数组
array:动态数组:
[]静态数组(定长):所有成员设为其默认值的静态数组
可以使用public变量的getter函数验证上面的初始值是否正确:
uint[8] public _staticArray; //所有成员设为默认值的静态数组[0,0,0,0,0,0,0,0]
uint[] public _dyanmicArray; //`[]`
mapping(uint => address) public _mapping; //所有元素都为其默认值的mapping
//所有成员设为其默认值的结构体0,0
struct Stuent {
uint256 id;
uint256 score;
}
Stuent public student;
delete a会让变量a的值变为初始值。
//delete操作符
bool public _bool2 = true;
function d() external {
delete _bool2; // delete 会让_bool2变为默认值,false
}

