Solidity进阶之路:搭建僵尸工厂 - 第10章: 函数的更多属性

Solidity Path: Beginner to Intermediate Smart Contracts

课程链接:https://cryptozombies.io/zh/lesson/1

你认为你可以当一个合格的 CryptoZombie, 嗯?
这个教程会教你如何搭建一个以太网的游戏。
此课程为 Solidity 初学者设计,需要你对其他的程序语言有所了解(如 JavaScript)。

第10章: 函数的更多属性

本章中我们将学习函数的返回值和修饰符。

返回值

要想函数返回一个数值,按如下定义:

string greeting = "What's up dog";

function sayHello() public returns (string) {
     
  return greeting;
}

Solidity里,函数的定义里可包含返回值的数据类型(如本例中string)。

函数的修饰符

上面的函数实际上没有改变Solidity里的状态,即,它没有改变任何值或者写任何东西。

这种情况下我们可以把函数定义为view,意味着它只能读取数据不能更改数据:

string greeting = "What's up dog";

function sayHello() public view returns (string) {
     
    return greeting;
}

Solidity还支持pure函数,表明这个函数甚至都不访问应用里的数据,例如:

function _multiply(uint a, uint b) private pure returns (uint) {
     
    return a * b;
}

这个函数甚至都不读取应用里的状态 — 它的返回值完全取决于它的输入参数,在这种情况下我们把函数定义为pure

注:可能很难记住何时把函数标记为pure/view。 幸运的是,Solidity编辑器会给出提示,提醒你使用这些修饰符。

你可能感兴趣的:(Solidity,Path,智能合约,以太坊,区块链)