关键字

智能合约使用的语言为golang定制版,屏蔽了部分golang关键字。

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