中国俗语常道“当家才知柴米贵”。Solidity中的每个函数调用都可能花费一定的gas值,普通的测试者与开发者可能感觉不到。而在以太坊主网中,成千上万个合约与交易这将消耗一大笔的费用。而Solidity犹如巧妇为gas消耗设计出了特有的修饰符。
实验目的:
1.理解solidity中特有的view与pure的函数修饰作用
2.明白什么时候使用view与pure
实验要求:
- 编译、应用需要改进的,分别调用getName、setName和f函数。在每次调用函数前查看gas值是否被消耗(观察账户余额变化)?
- 请为getName和f函数添加符号以删除编译器的警告。
- 代码警告都删除后,再次调用getName与f函数,查看gas值是否被消耗。
- 再将步骤2添加的getName与f的常量进行替换,是否通过思考这两个函数的区别,将心得写下。
以下是本实验所使用的测试代码,请复制到remix编辑器中进行测试。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract Test1 {
// 定义一个string字面量
string public name = unicode"老子Hello ";
//应该添加什么修饰符取消getName函数的警告?
function getName() public returns (string memory) {
return name;
}
function setName(string memory _newName) public {
name = _newName;
}
//应该添加什么修饰符取消f函数的警告?
function f(uint a, uint b) public returns (uint) {
return a * (b + 42);
}
}
下面本实验的教学视频,可点击进行观看:
