Variable Types
Last updated
Last updated
Variables have a data type that determines the kind of value that can be stored in the variable. Solidity supports a variety of data types, including:
Boolean: bool
Integer: int
and uint
of various sizes
Address: address
Bytes: bytes
and byte
String: string
Arrays: array
Structs: struct
Enumerations: enum
The concept of “undefined” or “null” values does not exist in Solidity. Newly declared variables (without assignment) always have a dependent on its type.
(u)int = 0
bool = False
string = ""
Solidity variables can be classified according to their data location.
A value type stores its data directly in the memory it owns. Variables of this type are duplicated whenever they appear in functions or assignments. A value type will maintain an independent copy of any duplicated variables.
uint
, int
, address
, bool
, enum
, bytes
A reference type stores the address of the data’s location; acts as a pointer to a value stored elsewhere.
If you examine the location of where the reference type was created, it will contain the pointer directing us to the actual location of the value; not the value itself.
mapping
, struct
, array
string arrays, byte arrays, array members, fixed/dynamic arrays