关键字
智能合约使用的语言为golang定制版,屏蔽了部分golang关键字。
- package、import: 谨慎使用,所有的import的模块都只能是链上的模块,不支持引用外部模块,会校验import的模块是否在链上。代码打包成交易时,会自动删除package和import,并将import按照规则转化为数组,最终的交易里是不允许包含这两个关键字的。
- go/select: 由于该操作会出现并发,导致数据的不一致性,所以暂时不支持。
- range: 由于map的遍历是随机的,将导致执行顺序不确定性,所以暂时不支持。
- cap/recover: 这函数不是必须的,可能导致差异,禁用。
- var和const: 变量和常量的声明。
- func: 用于定义函数和方法。
- return: 用于从函数返回。
- panic: 用于异常退出app。
- interface: 用于定义接口。
- struct: 用于定义抽象数据类型。
- type: 用于声明自定义类型。
- map: 内置关联数据类型。
- case、continue、for、fallthrough、else、if、switch、goto、default: 流程控制。