Data Location
In solidity, for effective memory management we can decide where to store the variables based on their nature or existence duration.
- There are mainly two types of data location : ‘storage’ and ‘memory’.
- Storage : Storage variables are persistent and are stored permanently on the blockchain, and also require more gas fee. These are similar to class data members in OOPs.
- Memory variables are temporary and are stored temporarily, they are destroyed as soon as the function execution finishes. Mainly used in the function parameters.
Example:
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.25;
contract GeekContract {
// Storage Variable - message
string message;
constructor(){
message = "This is my first contract";
}
// return type is a memory variable, not stored permanently
function sayHello () public pure returns (string memory) {
return 'Hello Geeks!';
}
}
Explanation
- The above code has one storage variable : ‘message’ which is stored permanently on the blockchain
- And the return type is of memory type data location, indicating that it is there temporarily.
Output:
Unlock the Power of Solidity: Exploring the Essential Keywords for Smart Contract Development
Solidity is a smart contract programming language built solely to develop smart contracts that can be deployed on blockchains. C++ and JavaScript inspired it, an Object Oriented and High-Level language (HLL), that helps developers define the behaviour and rules for a Decentralized Application (Dapp). Smart contract facilitates autonomous, secure, and efficient transaction execution on the blockchain without needing any intermediary (self-executable) and solidity provides the base framework for achieving the same.
It is essential to understand the common keywords used in solidity to solidify your core understanding of the language so in this article, we’ll pin down some prominent keywords that help us develop these smart contracts by embracing the true power of solidity language.
Table of Content
- Contract
- Constructor
- Data Types
- Delete
- Enum
- Function
- Interface
- Import
- Struct
- Visiblity Specifiers
- Exception Handling
- Pragma Directive
- License Defintion
- Modifier
- Data Location
- Global Variables
- Fallback Function
- SelfDestruct
- ‘assembly’ and ‘inline assembly’