【CryptoZombies - 1 Solidity 教程】006函数返回值与修饰符

目录

一、前言

二、返回值(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) {

    }

}
发布了244 篇原创文章 · 获赞 501 · 访问量 50万+

猜你喜欢

转载自blog.csdn.net/shuiyixin/article/details/94588287
今日推荐