【CryptoZombies - 1 Solidity 教程】006函数返回值与修饰符
原创
©著作权归作者所有:来自51CTO博客作者水亦心824的原创作品,请联系作者获取转载授权,否则将追究法律责任
目录
一、前言
二、返回值(return values)
1、返回值格式
三、修饰符(modifiers)
1、view
2、pure
四、实战
一、前言
看了一些区块链的教程,论文,在网上刚刚找到了一个项目实战,CryptoZombies。从这篇博客开始总结自己的学习笔记,与大家一同分享。
二、返回值(return values)
1、返回值格式
在Solidity 里,函数的定义里可包含返回值的数据类型(如本例中 string
)。
返回值格式示例如下:
string greeting = "What's up dog";
function sayHello() public returns (string) {
return greeting;
}
注:
1.返回值放在函数的共有私有属性后面;
2.返回用returns,而不是return。
三、修饰符(modifiers)
1、view
上面提到的函数实际上没有改变 Solidity 里的状态,即,它没有改变任何值或者写任何东西。这种情况下我们可以把函数定义为 view, 意味着它只能读取数据不能更改数据。
2、pure
pure 函数, 表明这个函数甚至都不访问应用里的数据。
示例如下:
function _multiply(uint a, uint b) private pure returns (uint) {
return a * b;
}
使用修饰符注意点如下:
1.修饰符放在共有私有属性后面;
2.放在函数返回值前面。
四、实战
1.要求
1.创建一个 private
函数,命名为 _generateRandomDna
。它只接收一个输入变量 _str
(类型 string
), 返回一个 uint
类型的数值。
2.此函数只读取我们合约中的一些变量,所以标记为view
。
3.函数内部暂时留空。
2.代码
pragma solidity ^0.4.25;
contract ZombieFactory {
uint dnaDigits = 16;
uint dnaModulus = 10 ** dnaDigits;
struct Zombie {
string name;
uint dna;
}
Zombie[] public zombies;
function _createZombie (string _name, uint _dna) private {
zombies.push(Zombie(_name,_dna));
}
// start here
function _generateRandomDna(string _str) private view returns (uint) {
}
}