Solidity是以太坊官方推荐的一门面向对象编程的高级语言,用于编写智能合约,支持多继承。
以太坊智能合约中可包含状态变量(state variable)、函数(function)、函数修饰符(modifier)、事件(event)、结构类型(struct)和枚举类型(enum)。
1、状态变量(state variable)
变量值会永久存储在合约的存储空间。
示例:
pragma solidity ^0.4.17;
contract Test {
address _owner; //state variable
string name;
}
2、函数(function)
智能合约中的一个可执行单元。
示例:
pragma solidity ^0.4.17;
contract Test{
function add(uint x, uint y) returns (uint z){
z = x + y;
}
}
3、函数修饰符(function modifier)
函数修饰符用于增强语义。略
4、事件(event)
事件是以太坊虚拟机(EVM)日志基础设施提供的一个便利接口。用于获取当前发生的事件。
示例:
pragma solidity ^0.4.17;
contract Test {
event logdata(address _sender, uint _amount);
function payTest() payable {
logdata(msg.sender, msg.value);
}
}
补充:其中msg.value是给对方打多少ETH,在remix中调试可以输入value值
event的函数名称可以自由定义,传值也可以是任意个数,最终以json的形式返回到remix调试区
5、结构体(struct)
自定义的将几个变量组合在一起形成的类型。
示例:
pragma solidity ^0.4.17;
contract Company {
//user defined `Employee` struct type
//group with serveral variables
struct employee{
string name;
uint age;
uint salary;
}
//User defined `manager` struct type
//group with serveral variables
struct manager{
employee employ;
string title;
}
}
6、枚举(enum)
特殊的自定义类型,类型的所有值可枚举的情况。
示例:
pragma solidity ^0.4.0;
contract Test {
enum Citys{Shanghai,Suzhou}
}
更多学习在后续章节中继续。