《区块链《区块链DApp开发入门、代码实现、场景应用》学习笔记开发入门、代码实现、场景应用》学习笔记04—第三章:第三章:
Solidity编程语法(编程语法(1))
3.1 Solidity前导知识前导知识
1. pragma-编译指示器编译指示器
pragma solidity ^0.4.0;
2. import-引用文件指令引用文件指令
import "filename";
import * as symbolName from "filename";
import {symboll as alias, symbol2} from "filename";
import "filename" as symbolName;
3. 注释注释
//单行
/* ... */多行
3.2 智能合约的基本构成智能合约的基本构成
3.2.1 状态变量状态变量
contract SimpleStorage {
uint storedData;
//......
}
3.2.2 函数函数
contract SimpleAuction {
function bid() public payable {
// ......
}
3.2.3 函数修饰器函数修饰器
当"_"符号出现在函数修饰器代码逻辑前面时,表示在被修饰函数的逻辑执行之后才执行函数修饰器的代码逻辑。
modifier onlySeller() {
require(
msg.sender == seller,
"Only seller can call this."
);
_;
}
3.2.4 事件事件
写入区块链日志的数据信息,在合约的开头首先要声明写入日志的数据类型,然后在具体的执行函数中,触发事件并将数据写入合约的日志存储空间。
contract SimpleAuction {
event HighestBidIncreased(address bidder, uint amount); //事件原型
function bid() public payable {
// ......
emit HighestBidIncreased(msg.sender, msg.value); //触发事件
}