📜  Solidity-基本语法

📅  最后修改于: 2020-11-02 04:57:09             🧑  作者: Mango


Solidity源文件可以包含任意数量的合同定义,导入指令和编译指示。

让我们从一个简单的Solidity源文件开始。以下是Solidity文件的示例-

pragma solidity >=0.4.0 <0.6.0;
contract SimpleStorage {
   uint storedData;
   function set(uint x) public {
      storedData = x;
   }
   function get() public view returns (uint) {
      return storedData;
   }
}

语用

第一行是编译指示,它指示源代码是为Solidity版本0.4.0或任何不破坏功能(但不包括版本0.6.0)的较新版本编写的。

编译指示始终位于源文件的本地,如果您导入另一个文件,则来自该文件的编译将不会自动应用于导入文件。

因此,对于一个不会早于版本0.4.0进行编译并且也无法在版本0.5.0开始的编译器上运行的文件,将使用以下语法:

pragma solidity ^0.4.0;

在这里,第二个条件通过使用^添加。

合同

Solidity合约是位于以太坊区块链上特定地址的代码(其功能)和数据(其状态)的集合。

uintstoredData行声明了一个名为uint类型的状态为storedData的状态变量,并且set和get函数可用于修改或检索变量的值。

导入文件

虽然上面的示例没有导入语句,但是Solidity支持与JavaScript中可用的导入语句非常相似的导入语句。

以下语句从“文件名”导入所有全局符号。

import "filename";

以下示例创建一个新的全局符号symbolName,其成员都是“文件名”中的所有全局符号。

import * as symbolName from "filename";

要从与当前文件相同的目录中导入文件x,请使用import“ ./x”作为x;。如果将import“ x”用作x;相反,可以在全局“包含目录”中引用其他文件。

保留关键字

以下是Solidity中的保留关键字-

abstract after alias apply
auto case catch copyof
default define final immutable
implements in inline let
macro match mutable null
of override partial promise
reference relocatable sealed sizeof
static supports switch try
typedef typeof unchecked