Solidity – View and Pure Functions
Last Updated :
17 Feb, 2023
The view functions are read-only function, which ensures that state variables cannot be modified after calling them. If the statements which modify state variables, emitting events, creating other contracts, using selfdestruct method, transferring ethers via calls, Calling a function which is not ‘view or pure’, using low-level calls, etc are present in view functions then the compiler throw a warning in such cases. By default, a get method is view function.
Example: In the below example, the contract Test defines a view function to calculate the product and sum of two unsigned integers.
Solidity
pragma solidity ^0.5.0;
contract Test {
uint num1 = 2;
uint num2 = 4;
function getResult(
) public view returns(
uint product, uint sum){
product = num1 * num2;
sum = num1 + num2;
}
}
|
Output:
![](https://media.geeksforgeeks.org/wp-content/uploads/20230207172049/img242.png)
Output
The pure functions do not read or modify the state variables, which returns the values only using the parameters passed to the function or local variables present in it. If the statements which read the state variables, access the address or balance, access any global variable block or msg, call a function that is not pure, etc are present in pure functions then the compiler throws a warning in such cases.
Example: In the below example, the contract Test defines a pure function to calculate the product and sum of two numbers.
Solidity
pragma solidity ^0.5.0;
contract Test {
function getResult(
) public pure returns(
uint product, uint sum){
uint num1 = 2;
uint num2 = 4;
product = num1 * num2;
sum = num1 + num2;
}
}
|
Output :
![](https://media.geeksforgeeks.org/wp-content/uploads/20230207172049/img242.png)
Output
Share your thoughts in the comments
Please Login to comment...