WTF Solidity: 8. Initial Value
Recently, I have been revisiting Solidity, consolidating the finer details, and writing "WTF Solidity" tutorials for newbies.
Twitter: @0xAA_Science | @WTFAcademy_
Community: Discord|Wechat|Website wtf.academy
Codes and tutorials are open source on GitHub: github.com/AmazingAng/WTFSolidity
Initial values of variables
In Solidity, variables declared but not assigned have their initial/default values. In this tutorial, we will introduce the initial values of common variable types.
Initial values of value types
boolean
:false
string
:""
int
:0
uint
:0
enum
: first element in enumerationaddress
:0x0000000000000000000000000000000000000000
(oraddress(0)
)function
internal
: blank functionexternal
: blank function
You can use getter
function of public
variables to confirm the above initial values:
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; // first element 0
function fi() internal{} // internal blank function
function fe() external{} // external blank function
Initial values of reference types
mapping
: amapping
which all members set to their default valuesstruct
: astruct
which all members set to their default valuesarray
- dynamic array:
[]
- static array(fixed-length): a static array where all members set to their default values.
- dynamic array:
You can use getter
function of public
variables to confirm initial values:
// reference types
uint[8] public _staticArray; // a static array which all members set to their default values[0,0,0,0,0,0,0,0]
uint[] public _dynamicArray; // `[]`
mapping(uint => address) public _mapping; // a mapping which all members set to their default values
// a struct which all members set to their default values 0, 0
struct Student{
uint256 id;
uint256 score;
}
Student public student;
delete
operator
delete a
will change the value of variable a
to its initial value.
// delete operator
bool public _bool2 = true;
function d() external {
delete _bool2; // delete will make _bool2 change to default(false)
}
Verify on Remix
Deploy
InitialValue.sol
and check the initial values of the different types.After using the
delete
operator, the value of the variables are reset to their initial values.
Summary
In this section, we introduced the initial values of variables in Solidity. When a variable is declared but not assigned, its value defaults to the initial value, which is equivalent as 0
represented in its type. The delete
operator can reset the value of the variable to the initial value.