Solidity学习笔记:数组、结构体和Mapping
2024/05/26
// SPDX-License-Identifier: MITpragma solidity ^0.8.19;
contract ArrayDemo { // 数组可以在声明时指定长度,也可以动态调整大小 // 定义一个长度为2的数组 string[2] public fruit = ["apple", "mango"];
// int类型数组 uint[2] public numbers = [1, 2];
// 不指定长度,定义变长数组 string[] public list = ["a", "b", "c"]; function add(string memory name) public{ list.push(name); }}
contract StructDemo { // 定义一个包含两个属性的结构体Person。 struct Person { string name; int256 favoriteNumber; } // 初始化 Person public rita = Person("rita", 3);
// 结构体数组 Person[] public listOfPeople;}
contract MappingDemo { // Mapping也就是映射,可以理解为Javascribt中的Object mapping (string name => int256 age) public nameToAge; // 也可以写成 mapping (string => int256 ) public nameToAge;
function setAge(string memory _name, int256 _age) public { nameToAge[_name] = _age; }
function getAge(string memory _name) public view returns(int256) { return nameToAge[_name]; }}