Solidity 变量
Solidity 变量 Solidity 特殊变量 Solidity 变量默认值 Solidity 变量作用域 Solidity 常量Solidity 运算符
Solidity 运算符 Solidity 算术运算符 Solidity 比较运算符 Solidity 逻辑运算符 Solidity 位运算符 Solidity 赋值运算符 Solidity 条件运算符Solidity 条件语句
Solidity 条件语句 Solidity if语句 Solidity if…else 语句 Solidity if…else ifSolidity 循环语句
Solidity 循环语句 Solidity while 循环 Solidity do 循环 Solidity for 循环 break 与 continueSolidity 复杂数据
Solidity 字符串 Solidity 数组 Solidity 结构体 Solidity 映射 Solidity 枚举 Solidity 类型转换Solidity 数据位置
Solidity 数据位置 Solidity 变量数据位置 Solidity 赋值数据位置Solidity 函数
Solidity 函数 Solidity 函数返回值 Solidity pure函数 Solidity view函数 Solidity 构造函数 solidity 函数修改器 Solidity 函数重载 Solidity 数学函数 Solidity 加密函数Solidity 进阶编程
Solidity 事件 Solidity 不可变量 Solidity 日志 Solidity 继承 Solidity 多重继承 多重继承的构造函数 Solidity 调用父类函数 Solidity 异常处理 Solidity 编程风格 Solidity 访问权限 Solidity 存储位置 Solidity 引用类型 Solidity 值类型 Solidity 值类型与引用类型 Solidity 合约结构 Solidity 编写智能合约 Solidity delete Solidity 0.6 重大变化 Solidity transfer 转账 Solidity transfer send Solidity 单位 Solidity constant Solidity this & sender Solidity address Solidity 众筹智能合约 Solidity interface solidity gas使用模式 Solidity 常见编译错误 Solidity 调用合约 Solidity 支付Eth Solidity fallback Solidity receive Solidty 钱包合约 Solidity 发送Eth Solidity 自毁合约 Solidity 哈希算法 Solidity 工厂合约 Solidity 库合约 Solidity 权限控制合约 Solidity 验证签名Solidity 变量
Solidity 变量 Solidity 特殊变量 Solidity 变量默认值 Solidity 变量作用域 Solidity 常量Solidity 运算符
Solidity 运算符 Solidity 算术运算符 Solidity 比较运算符 Solidity 逻辑运算符 Solidity 位运算符 Solidity 赋值运算符 Solidity 条件运算符Solidity 条件语句
Solidity 条件语句 Solidity if语句 Solidity if…else 语句 Solidity if…else ifSolidity 循环语句
Solidity 循环语句 Solidity while 循环 Solidity do 循环 Solidity for 循环 break 与 continueSolidity 复杂数据
Solidity 字符串 Solidity 数组 Solidity 结构体 Solidity 映射 Solidity 枚举 Solidity 类型转换Solidity 数据位置
Solidity 数据位置 Solidity 变量数据位置 Solidity 赋值数据位置Solidity 函数
Solidity 函数 Solidity 函数返回值 Solidity pure函数 Solidity view函数 Solidity 构造函数 solidity 函数修改器 Solidity 函数重载 Solidity 数学函数 Solidity 加密函数Solidity 进阶编程
Solidity 事件 Solidity 不可变量 Solidity 日志 Solidity 继承 Solidity 多重继承 多重继承的构造函数 Solidity 调用父类函数 Solidity 异常处理 Solidity 编程风格 Solidity 访问权限 Solidity 存储位置 Solidity 引用类型 Solidity 值类型 Solidity 值类型与引用类型 Solidity 合约结构 Solidity 编写智能合约 Solidity delete Solidity 0.6 重大变化 Solidity transfer 转账 Solidity transfer send Solidity 单位 Solidity constant Solidity this & sender Solidity address Solidity 众筹智能合约 Solidity interface solidity gas使用模式 Solidity 常见编译错误 Solidity 调用合约 Solidity 支付Eth Solidity fallback Solidity receive Solidty 钱包合约 Solidity 发送Eth Solidity 自毁合约 Solidity 哈希算法 Solidity 工厂合约 Solidity 库合约 Solidity 权限控制合约 Solidity 验证签名Solidity 编写智能合约
要写智能合约有好几种语言可选:有点类似 Javascript 的 Solidity, 文件扩展名是.sol。Python 接近的Serpent, 文件名以.se结尾。还有类似 Lisp 的LLL,但现在最流行而且最稳定的要算是 Solidity 了。
1. solidity Hello World
pragma solidity ^0.4.0;
import "./A.sol";
contract HelloWorld {
function hello() returns(string){
return "hello world";
}
}
solidity文件扩展名为.sol,主合约名要和solidity文件名相同,一份合约包含版本声明,导入声明,合约声明
2. 版本声明
pragma solidity ^0.4.0;
pragmas(编译指令)是告知编译器如何处理源代码的指令,^表示向上兼容,版本操作符可以为:^ ~ >= > < <= = 之一,0.4.0代表solidity版本(版本字面量形如x.x.x),^0.4.0表示solidity的版本在0.4.0 ~ 0.5.0(不包含0.5.0)的版本,这是为了确保合约不会在新的编译器版本中突然行为异常
3. 导入声明
import导入其他源文件,例如:
import "./A.sol"; 从"A"中导入所有的全局标志到当前全局范围,`./`表示当前目录
其他方式:
(1). 创建新的全局符号 symbolName,其成员都是来自“A”的全局。
import * as symbolName from "A";/import "A" as symbolName;
(2).创建新的全局符号“alias”和“symbol2”,它将分别从”A” 引入symbol1 和 symbol2。
import {symbol1 as alias, symbol2} from "A";
4. 合约声明
包括:contract,interface,library。
(1).contract
contract HelloWorld
这里HelloWorld指合约名称,contract即为其他语言中的class,HelloWorld即为类名,创建合约实例则用HelloWorld helloworld = new HelloWorld();
(2).interface 接口
interface A{
function testA();
}
函数不允许有函数体。
(3).library 库
库与合约类似,但它的目的是在一个指定的地址,且仅部署一次,然后通过 EVM 的特性来复用代码。
library Set {
struct Data { mapping(uint => bool) flags; }
function test(){
}
}
其他合约调用库文件的内容直接通过库文件名.方法名例如:Set.test()。
注:一份源文件可以包含多个版本声明、多个导入声明和多个合约声明。
下一章:Solidity mapping delete
1. mapping一种键值对的映射关系存储结构。语法:mapping(_Key => _Value),键值对类型,键是唯一的,其赋值方式为:map[a]=test; 意思是键为a,值为 ...
AI 中文社