- Solidity 教程
- Solidity - 首页
- Solidity - 概述
- Solidity - 环境搭建
- Solidity - 基本语法
- Solidity - 第一个应用
- Solidity - 注释
- Solidity - 数据类型
- Solidity - 变量
- Solidity - 变量作用域
- Solidity - 运算符
- Solidity - 循环
- Solidity - 条件判断
- Solidity - 字符串
- Solidity - 数组
- Solidity - 枚举
- Solidity - 结构体
- Solidity - 映射
- Solidity - 类型转换
- Solidity - 以太币单位
- Solidity - 特殊变量
- Solidity - 样式指南
- Solidity 函数
- Solidity - 函数
- Solidity - 函数修饰符
- Solidity - View 函数
- Solidity - Pure 函数
- Solidity - 回退函数
- 函数重载
- 数学函数
- 密码学函数
- Solidity 常用模式
- Solidity - 提款模式
- Solidity - 访问限制
- Solidity 高级特性
- Solidity - 合约
- Solidity - 继承
- Solidity - 构造函数
- Solidity - 抽象合约
- Solidity - 接口
- Solidity - 库
- Solidity - 汇编
- Solidity - 事件
- Solidity - 错误处理
- Solidity 有用资源
- Solidity - 快速指南
- Solidity - 有用资源
- Solidity - 讨论
Solidity - 基本语法
一个 Solidity 源文件可以包含任意数量的合约定义、导入指令和pragma指令。
让我们从一个简单的 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; } }
Pragma
第一行是一个 pragma 指令,它说明源代码是为 Solidity 0.4.0 或更高版本编写的,这些版本不会破坏直到(但不包括)0.6.0 版本的功能。
pragma 指令始终是局部于一个源文件的,如果您导入另一个文件,则该文件中的 pragma 不会自动应用于导入文件。
因此,一个 pragma 指令,它要求编译器版本不早于 0.4.0,也不晚于 0.5.0,可以这样写:
pragma solidity ^0.4.0;
这里第二个条件是通过使用 ^ 添加的。
合约
Solidity 合约是代码(其函数)和数据(其状态)的集合,它驻留在以太坊区块链上的特定地址。
uint storedData 行声明了一个名为 storedData 的状态变量,其类型为 uint,set 和 get 函数可以用来修改或检索变量的值。
导入文件
虽然上面的例子没有导入语句,但 Solidity 支持与 JavaScript 中非常相似的导入语句。
以下语句从 "filename" 导入所有全局符号。
import "filename";
以下示例创建一个新的全局符号 symbolName,其成员是 "filename" 中的所有全局符号。
import * as symbolName from "filename";
要从与当前文件相同的目录导入文件 x,请使用 import "./x" as x;。如果您改为使用 import "x" as 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 |
广告