19数组
数组
- 长度可以固定fixed也可以动态dynamic
- 数组初始化
- 数组操作:insert(push),get,update,delete,pop,length
- 在memory中常见数组
- 函数中返回数组
数组初始化
uint[]public nums=[1,2,3];
uint[3]public numsFixed=[4,5,6];
数组操作:insert(push),get,update,delete,pop,length
function examples() external {
// push
nums.push(4);//[1,2,3,4]
// get
uint x=nums[1];//2
// modify
nums[2]=777;//[1.2.777,4]
//delete:不会改变长度,是把删除的元素的值重置为默认值0
delete nums[1];//[1,0,777,4]
//pop:弹出数组的最后一个值,长度-1
nums.pop();//[1,0,777]
// 数组长度
uint len=nums.length;
}
在memory中常见数组
// 内存中常见数组,必须常见fixed数组
uint [] memory arr=new uint[](5);
// 在内存中,不能使用push和pop方法,因为这两个方法会改变长度,只能根据索引修改值
// 内存中只能存储定长数组,动态数组只能存在于状态变量
函数中返回数组
// 返回数组全部元素
function returnArray() external view returns (uint[]memory){
return nums;
}
// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
contract Array{
uint[]public nums=[1,2,3];
uint[3]public numsFixed=[4,5,6];
function examples() external {
// push
nums.push(4);//[1,2,3,4]
// get
uint x=nums[1];//2
// modify
nums[2]=777;//[1.2.777,4]
//delete:不会改变长度,是把删除的元素的值重置为默认值0
delete nums[1];//[1,0,777,4]
//pop:弹出数组的最后一个值,长度-1
nums.pop();//[1,0,777]
// 数组长度
uint len=nums.length;
// 内存中常见数组,必须常见fixed数组
uint [] memory arr=new uint[](5);
// 在内存中,不能使用push和pop方法,因为这两个方法会改变长度,只能根据索引修改值
// 内存中只能存储定长数组,动态数组只能存在于状态变量
}
// 返回数组全部元素
function returnArray() external view returns (uint[]memory){
return nums;
}
}