Pragma - Solidity编译控制指令
为了避免未来被可能引入不兼容变更的编译器所编译,源文件可以(也应该)被所谓的pragma 控制指令所注解。 我们力图把这类变更做到尽可能小,特别是,我们需要以一种当修改语义时必须同步修改语法的方式引入变更, 当然这有时候也难以做到。 因此,至少对含重大变更的版本,通读变更日志永远是好办法。 这些版本的版本号始终是 0.x.0 或者 x.0.0 的形式。
pragma编译版本控制指令使用如下:
pragma solidity ^0.4.0;
这样,源文件将既不允许低于 0.4.0 版本的编译器编译, 也不允许高于(包含) 0.5.0 版本的编译器编译(第二个条件因使用 ^ 被添加)。 这种做法的考虑是,编译器在 0.5.0 版本之前不会有重大变更,所以可确保源代码始终按预期被编译。 上面例子中不固定编译器的具体版本号 ,因此编译器的补丁版也可以使用。
可以使用更复杂的规则来指定编译器的版本,表达式遵循 npm 版本语义。