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
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.
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
-
mapping
: amapping
which all members set to their default values -
struct
: astruct
which all members set to their default values -
array
- 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 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)
}
-
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.
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.