实验1.2 pure与view

中国俗语常道“当家才知柴米贵”。Solidity中的每个函数调用都可能花费一定的gas值,普通的测试者与开发者可能感觉不到。而在以太坊主网中,成千上万个合约与交易这将消耗一大笔的费用。而Solidity犹如巧妇为gas消耗设计出了特有的修饰符。

实验目的:

1.理解solidity中特有的view与pure的函数修饰作用
2.明白什么时候使用view与pure

实验要求:

  1. 编译、应用需要改进的,分别调用getName、setName和f函数。在每次调用函数前查看gas值是否被消耗(观察账户余额变化)?
  2. 请为getName和f函数添加符号以删除编译器的警告。
  3. 代码警告都删除后,再次调用getName与f函数,查看gas值是否被消耗。
  4. 再将步骤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);
    } 
}

下面本实验的教学视频,可点击进行观看: