蚂蚁开放联盟链实战:03-语言基础
Solidity 语言基础
Solidity 是一种基于 Ethereum 平台的编程语言,用于编写智能合约。
📌 一、基础类型与变量
值类型
bool:布尔值(true/false)
uint/int:无符号/有符号整数(如 uint8, int256)
address:存储 20 字节的以太坊地址
bytes:固定大小字节数组(如 bytes32)
string:动态长度 UTF-8 字符串
引用类型
array:数组(可动态或静态,如 uint[])
struct:自定义数据结构
mapping:键值对映射(如 mapping(address => uint))
数据位置修饰符
storage:永久存储在链上
memory:临时变量,函数执行后销毁
calldata:只读的临时数据(常用于函数参数)
⚙️ 二、函数与修饰符
函数声明
function:定义函数
returns:声明返回值类型(如 returns (uint))
view:承诺不修改状态
pure:承诺不读/写状态
payable:允许函数接收 ETH
函数行为控制
modifier:定义函数修饰器(如权限检查)
constructor:合约部署时执行的初始化函数
fallback:处理未匹配函数调用的默认函数
receive:专门接收 ETH 的函数
🔄 三、流程控制
if/else:条件分支
for/while/do:循环控制
break/continue:中断或继续循环
return:从函数返回值
📦 四、合约与继承
合约结构
contract:定义智能合约
interface:声明抽象接口(无实现)
library:定义可复用代码库
继承与抽象
is:实现继承(如 contract A is B)
abstract:标记合约未完全实现
virtual:允许函数在子类中被覆盖
override:显式声明覆盖父合约函数
⚡ 五、特殊变量与错误处理
全局变量
msg.sender:当前调用者地址
msg.value:随调用发送的 ETH 数量
block.timestamp:当前区块时间戳
错误处理
require:验证条件,不满足则回滚
assert:检查内部错误(如溢出)
revert:主动终止执行并回滚
error:自定义错误类型(Gas 效率高于 string)
💎 六、其他关键操作符
new:创建新合约实例
delete:重置变量为默认值
emit:触发事件(如 emit Transfer(…))
enum:定义枚举类型
event:声明事件(用于日志记录)