《道德经》第二章第三句“是以圣人处无为之事,行不言之教。”Solidity中的自动生成getter函数就是这样的一位圣人,默默地为代码编写者实现getter的功能,使得代码更加简洁,方便。
实验目的
1. 明白Solidity中哪些情况会自动生成getter函数。
2. 了解默认自动生成的getter函数基本形式
实验要求
1.请依次编译与部署nonGetter,selfGetter,publicAutoGetter,autoGetterAndselfGetter四个合约。写出这四个合约的区别,并思考solidity在什么情况默认自动生成getter函数且getter函数的形式是怎样的?
2.编译与部署mappingNonGetter合约,你会发现没有mapping的返回值。请你根据第一个要求所得到的结果,用两种方式为mappinNonGetter合约完善代码,使得该合约部署后,执行test函数后,有方法可以调用mapping[1]中的值。
以下是本次实验所使用到的测试代码,请使用remix编辑器完成该实验
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
contract nonGetter {
string name = "nonGetter";
}
contract selfGetter {
string name = "selfGetter";
function getter() external view returns(string memory){
return name;
}
}
contract publicAutoGetter{
string public name = "publicAutoGetter";
}
contract autoGetterAndselfGetter {
string public name = "selfGetter";
function name1() external view returns(string memory){
return name;
}
}
contract mappingNonGetter{
mapping(uint => string)map;
function test() public {
map[1] = "Jack";
}
}
下面是本次实验所配套的视频教程:
