Solidity Steps
  • Learning Solidity
  • Step 1
    • 1: Introduction
    • 2: Data Types
    • 3: Functions
    • 4: Control Structures
    • 5: State Variable
    • 6: Local Variables
    • 7: Global Variables
    • 8: View Keyword
    • 9: Pure Keyword
  • STEP 2
    • 10: Immunable Keyword
    • 11: Events
    • 12: Condition
    • 13: While Loop
    • 14: Do While Loop
    • 15: For Loop
    • 16: Required
    • 17: Assert
    • 18: Revert
    • 19: Modifier
  • STEP 3
    • 20: Constructor
    • 21: Mapping
    • 22: Array
    • 23: Enum
    • 24: Structs
    • 25: Data Location
    • 26: Inheritance
    • 27: The Shadowing Effect
    • 28: Super Keyword
    • 29: Visibility
  • STEP 4
    • 30: Interface
    • 31: Abstract Contract
    • 32: Payable
    • 33: Using type()
    • 34: Sending Ether
    • 35: Receive
    • 36: Fallback
    • 37: Call
    • 38: DelegateCall
    • 39: Calling Other Contracts
  • STEP 5
    • 40: Factory Contract
    • 41: Proxy Contract
    • 42: Create2
    • 43: Try and Catch
    • 44: Solidity Library
    • 45: ABI Encoded
    • 46: ABI Decoded
    • 47: Keccak256
    • 48: Function Signature Hash
  • TIPS
    • Tips: Solidity by "Immunable"
    • Tips: Truffle Tutorial
    • Tips: Microblog Dapp
    • Tips: Reentrancy
    • Tips: Slither Tutorial
    • Tips: Remix Tutorial
    • Tips: Hardhat Tutorial
  • CAREER
    • 💲Cover Letter
    • 💲Resume
  • ABOUT
    • Contact me
Powered by GitBook
On this page
  • Array
  • Dynamic Arrays
  • Replace Array
  • Array Remove
  • Array Pop
  • Array Methods - by Some Examples
  1. STEP 3

22: Array

Array

An Array is a data structure that can be used to store a collection of data elements. In Solidity, an array can be of any data type, including structs, mappings, and other arrays.

Here are some examples of arrays in Solidity:

  • Example 1:

uint[4] array;

This is an array of type uint of size 4.

  • Example 2:

struct User {    
    string name;    
    uint age;
} 
User[2] users;

This is an array of type User of size 2.

  • Example 3:

mapping (uint => uint) mappingA;
uint[] arrayOfMappingsA; // arrayOfMappingsA[i] = x;

// complex array = matrix => actually we dont use in projects~
uint[][] arrayOfMappingsB; 

Dynamic Arrays

A dynamic array is a data structure that can store a variable number of elements. It can be used to store a list of elements that can grow and shrink as needed. Here are some examples of dynamic arrays in Solidity:

  • Example 1: Using push() The push() function can be used to add elements to a dynamic array.

contract Example1 {    
    uint[] arr; 
    function addElement(uint element) public {        
        arr.push(element);    
    }
}
  • Example 2: Using length The length property can be used to get the length of a dynamic array.

contract Example2 {    
    uint[] arr; 
    function getLength() public view returns (uint) {        
        return arr.length;    
    }
}
  • Example 3: Using delete The delete keyword can be used to delete elements from a dynamic array.

contract Example3 {    
    uint[] arr; 
    function deleteElement(uint element) public {        
        delete arr[element];    
    }
}

Replace Array

This article looks at how to replace an array in Solidity using some examples.

  • Example 1 Let's say we have an array like this:

uint[] numbers = [1, 2, 3, 4, 5];

We can replace this array with a new one, like this:

uint[] newNumbers = [6, 7, 8, 9, 10];
numbers = newNumbers;
  • Example 2 Let's say we have an array like this:

string[] names = ["Alice", "Bob", "Carol"];

We can replace this array with a new one, like this:

string[] newNames = ["Dave", "Eve", "Frank"];
names = newNames;
  • Example 3 Let's say we have an array like this:

bytes32[] hashes = [hash1, hash2, hash3];

We can replace this array with a new one, like this:

bytes32[] newHashes = [hash4, hash5, hash6];
hashes = newHashes;

Array Remove

Removing elements from an array can be done in Solidity with the array.remove() function. This function takes a single argument, the element to be removed, and removes it from the array.

  • Example 1

uint[] array = [1, 2, 3, 4, 5];
array.remove(2);

After calling remove(2), the array now contains [1, 3, 4, 5].

  • Example 2

string[] array = ["Alice", "Bob", "Charlie", "David"];
array.remove("Charlie");

After calling remove("Charlie"), the array now contains ["Alice", "Bob", "David"].


Array Pop

Array pop is a useful function in Solidity that removes the last element from an array and returns it. This function is important for managing memory and working with dynamic arrays.

  • Example 1 We can use array pop to remove the last element from an array and store it in a variable.

uint[] myArray = [1, 2, 3, 4];
uint lastElement = myArray.pop();

In this example, the variable lastElement will have the value 4 and the array myArray will have the values [1, 2, 3].

  • Example 2 We can also use array pop to remove elements from the end of a dynamic array.

uint[] memory dynamicArray = new uint[](3);
dynamicArray[0] = 4;
dynamicArray[1] = 7;
dynamicArray[2] = 9;
uint lastElement = dynamicArray.pop();

In this example, the variable lastElement will have the value 9 and the array dynamicArray will have the values [4, 7].


Array Methods - by Some Examples

Solidity provides numerous array methods that allow you to manipulate array values in a variety of ways. Here are some examples of how you can use array methods to work with arrays of data.

  • push() The push() method adds an element to the end of an array.

contract ArrayExample {    
    string[] public arrayData; 
    // add a string to the end of the array    
    function pushArray(string memory _value) public {        
        arrayData.push(_value);    
    }
}
  • length() The length() method returns the length (number of elements) in an array.

contract ArrayExample {    
    string[] public arrayData; 
    // returns the length of the array    
    function getLength() public view returns (uint) {        
        return arrayData.length;    
    }
}
  • pop() The pop() method removes the last element from an array.

contract ArrayExample {    
    string[] public arrayData; 
    // remove the last element from the array    
    function popArray() public {        
        arrayData.pop();    
    }
}
  • slice() The slice() method returns a shallow copy of a portion of an array into a new array object.

contract ArrayExample {    
    string[] public arrayData; 
    // returns a shallow copy of a portion of an array    
    function getSlice(uint start, uint end) public view returns (string[] memory) {        
        return arrayData.slice(start, end);    
    }
}

Some of these methods not included yet in solidity

That's it for the lesson 22! In the next lesson, Enum

Previous21: MappingNext23: Enum

Last updated 1 year ago

These are just a few of the array methods available in Solidity. For a full list of array methods, see .

the Solidity documentation