【第二章】简单智能合约示例与学习

简单的存储试例:

我们从一个基本示例开始,该示例设置变量的值并将其公开以供其他合约访问。


// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.16 <0.9.0;

contract SimpleStorage {
    uint storedData;

    function set(uint x) public {
        storedData = x;
    }

    function get() public view returns (uint) {
        return storedData;
    }
}
//Q群54548027
//qq201333403

第一行告诉您源代码是在 GPL 3.0 版下获得许可的。机器可读的许可证说明符在默认发布源代码的设置中很重要。

下一行指定源代码是为 Solidity 版本 0.4.16 或更高版本的语言编写的,但不包括版本 0.9.0。这是为了确保合约不能与新的(破坏性的)编译器版本一起编译,因为它的行为可能会有所不同。 Pragma是编译器关于如何处理源代码的常用指令(例如pragma once)。

Solidity 意义上的合约是位于以太坊区块链上特定地址的代码(其功能)和数据(其状态)的集合uint storedData;​行声明了一个​uint​类型(256位的无符号整数)的状态变量storedData您可以将其视为数据库中的单个插槽,您可以通过调用管理数据库的代码的函数来查询和更改它。在此示例中,合约定义了可用于修改或检索变量值的函数​set​和 get

要访问当前合约的成员(如状态变量),通常不需要添加this.前缀,只需通过名称直接访问即可。与其他一些语言不同,省略它不仅仅是风格问题,它会导致访问成员的方式完全不同,稍后会详细介绍。

除了(由于以太坊构建的基础设施)允许任何人存储世界上任何人都可以访问的单个数字之外,该合约还没有做太多事情,而没有(可行的)方法来阻止你发布这个数字。任何人都可以用不同的值再次调用set并覆盖您的号码,但该号码仍存储在区块链的历史记录中。稍后,您将看到如何施加访问限制,以便只有您可以更改号码。

子货币试例:

(由以下合约实现了最简单的加密货币形式。该合约仅允许其创建者创建新硬币&

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值