当先锋百科网

首页 1 2 3 4 5 6 7

solidity入门讲解

本文主要通过一个简单的案列讲解一下solidity入门相关的知识。

Solidity 是一种面向对象的高级语言,用于实现智能合约。智能合约是管理以太坊状态下账户行为的程序。

Solidity 是一种花括号语言,旨在针对以太坊虚拟机 (EVM)。它受到 C++、Python 和 JavaScript 的影响。

Solidity 是静态类型的,支持继承、库和复杂的用户定义类型等特性。

使用 Solidity可以创建用于投票、众筹、盲目拍卖和多重签名钱包等用途的合约。

下面是一个案例讲解

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;

    }

}

上一篇文章有介绍过一个案列,这篇再重复讲解一下。

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

下一行指定源代码是为 Solidity 版本 0.4.16 或该语言的更新版本编写的,但不包括版本 0.9.0。这是为了确保合约无法使用新的(中断的)编译器版本进行编译,因为它的行为可能会有所不同。 Pragmas是编译器关于如何处理源代码的通用指令(例如pragma once)。

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

要访问当前合约的成员(如状态变量),通常不需要添加this.前缀,只需通过其名称直接访问它即可。

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