📜  Solidity 中的动态数组及其操作

📅  最后修改于: 2022-05-13 01:54:42.957000             🧑  作者: Mango

Solidity 中的动态数组及其操作

动态数组是在运行时分配内存的数组,内存是从堆中分配的。

句法:

它们与固定大小的数组有何不同?



固定大小的数组具有固定的内存大小,而在动态数组中,大小可以在运行时随机更新,这对于代码的内存复杂性而言可能被认为是有效的。

问题:如何在solidity中创建动态数组并执行相关操作?

解决方案:在本文中,我们将使用solidity 语言创建动态数组,并对其执行以下操作:

  1. 在数组中添加数据
  2. 获取数组的数据
  3. 获取数组长度
  4. 获取数组元素的总和
  5. 搜索数组中的特定元素

什么是可靠性?

Solidity 是一种高级语言。 Solidity 中智能合约的结构与面向对象语言中的类结构非常相似。 Solidity文件的扩展名为 .sol 。

什么是智能合约?

Solidity 的代码封装在合约中,这意味着 Solidity 中的合约是驻留在以太坊区块链上特定地址的代码(其功能)和数据(其状态)的集合。合约是在以太坊上构建应用程序的基本块。

第 1 步:打开 Remix-IDE。



步骤 2:从左侧图标中选择文件资源管理器,然后在环境中选择 Solidity。单击 Solidity 环境下方的新建选项。输入文件名为 dynamicArray.sol 并单击 OK 按钮。

第 3 步:输入以下 Solidity 代码。选择与代码中相同的 Solidity 版本。

Solidity
// Solidity program to demonstrate
// the above approach
pragma solidity ^0.6.8;
contract DynamicArray{
    
// Declaring state variable  
int[] private arr; 
      
// Function to add data 
// in dynamic array
function addData(int num) public
{
  arr.push(num);
}
      
// Function to get data of
// dynamic array
function getData() public view returns(int[] memory)
{
  return arr;
}
      
// Function to return length 
// of dynamic array
function getLength() public view returns (uint)
{
  return arr.length;
}
  
// Function to return sum of 
// elements of dynamic array
function getSum() public view returns(int)
{
  uint i;
  int sum = 0;
    
  for(i = 0; i < arr.length; i++)
    sum = sum + arr[i];
  return sum;
}
      
// Function to search an 
// element in dynamic array
function search(int num) public view returns(bool)
{
  uint i;
    
  for(i = 0; i < arr.length; i++)
  {
    if(arr[i] == num)
    {
      return true;
    }
  }
    
  if(i >= arr.length)
    return false;
}
}


第 4 步:从 Solidity Compiler选项卡编译文件dynamicArray.sol

步骤 5:Deploy and Run Transaction 选项卡部署智能合约。

第六步:对已部署合约部分下的数组进行各种操作。