1.版本指令
所有的 Solidity 源码都必须冠以 “version pragma” — 标明 Solidity 编译器的版本, 以避免将来新的编译器可能破坏代码。
pragma solidity ^0.4.19;
2.合约
solidity所有的代码都包含在合约中,合约是所有应用的起点。
如下,就是最简单的HelloWorld空合约:
pragma solidity ^0.4.19;
contract HelloWorld{
}
3.状态变量
状态变量将被永久保存入区块链中
(1)无符号整数uint
uint 无符号数据类型, 指其值不能是负数,对于有符号的整数存在名为 int 的数据类型。
contract Example {
// 这个无符号整数将会永久的被保存在区块链中
uint myUnsignedInteger = 100;
}
如上所示,这个无符号整数被赋值100.
(2)有符号整数int
(3)字符串类型string
字符串用于保存任意长度的 UTF-8 编码数据
4.数学运算
- 加法: x + y
- 减法: x - y
- 乘法: x * y
- 除法: x / y
- 取模 / 求余: x % y
- 乘方:x ** y(x的y次方)
5.结构体
struct Person {
uint age;
string name;
}
6.数组
Solidity支持两种类型的数组格式:静态数组和动态数组
// 固定长度为2的静态数组:
uint[2] fixedArray;
// 固定长度为5的string类型的静态数组:
string[5] stringArray;
// 动态数组,长度不固定,可以动态添加元素:
uint[] dynamicArray;
当然,也可以建立结构体数组
Person[] people; // 这是动态数组,我们可以不断添加元素
也可以建立公共数组,任何合约都可以访问
Person[] public people;