ethereum初探七:solidity

了解solidity 最好还是自己去阅读英文的官方文档加上一些中文文档辅助。

英文文档 当前最新版本地址:https://solidity.readthedocs.io/en/v0.5.8/

一. 注释

//单行注释

/* 多行注释 */

///可以生成文档的注释   /** 可以生成文档的注释 */

二. 数据类型

1 整型

通过int/uint定义。可以设置占用空间的大小。从8位开始,8位步长,最大到256位。int8、int16、int24、uint8……

int unit默认是256位。

uint一般用来表示货币数量和时间戳。solidity目前是不支持double float的。

如:uint balace = 1 ether;  uint time = 1 hours;

整型常量需要通过 constant 修饰。

2 布尔型

bool 常量值有true false。

3. 地址

以太坊中的地址位160位,即20个字节大小。

address public owner;

4 字节

固定长度字节数以 bytes 加上数字定义。如:bytes 2 foo;

动态长度字节以 bytes数组和string定义。bytes类似byte[],string 不提供长度和按索引访问。

bytes foo;  或者 string str = “hello”;

5 时间单位和货币单位

seconds minutes hours days weeks years 均可作为后缀,并进行相互转换。默认为秒。

wei finney szabo ether等是货币单位。

6 数组和多维数组

固定长度的数组 uint[5] x =[1,2,3,4,5];

动态数组 bytes32 [] names;

多维数组中需要指出的是 solidity中的行列和大多数编程语言是相反的。

7 映射/字典

映射的定义 mapping(_KeyType => _KeyValue)。如:mapping(string =>uint) public balance;

发表评论