Solidity is a statically typed language, which means that the type of each variable (state and local) needs to be specified.
There are 3 types of variables in Solidity
local
declared inside a function
not stored on the blockchain
state
declared outside a function
stored on the blockchain
global (provides information about the blockchain)
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.3;
contract Variables {
// State variables are stored on the blockchain.
string public text = "Hello";
uint public num = 123;
function doSomething() public {
// Local variables are not saved to the blockchain.
uint i = 456;
// Here are some global variables
uint timestamp = block.timestamp; // Current block timestamp
address sender = msg.sender; // address of the caller
}
}