一、 pragma关键字

合约定义文件的第一行是pragma(pragmatic information)编译版本说明。 solidity语法在快速修订和变化中,这里通过pragma来说明当前文件所使用的solidity标准的版本,这样编译器就能够知道是否可以处理。

  pragma solidity ^0.4.0;

版本号是三个数字的。注意到这里有一个^符号,意味着版本号规则为大于或者等于0.4.0,并且小于0.5.0的才可以。 这种做法的考虑是,编译器在 0.5.0 版本之前不会有重大变更,所以可确保源代码始终按预期被编译。 上面例子中不固定编译器的具体版本号,因此编译器的补丁版也可以使用。 可以使用更复杂的规则来指定编译器的版本,表达式遵循 npm版本语义

当前的sol文件使用 ^0.4.0即可。

二、版本号语义

有兴趣的同学可以进一步了解。

简单比较符

版本范围语义可以使用 <, <=, >, >=, =等比较符号来约定,比如 >=1.2.7,指最低版本必须是1.2.7。1.2.6、1.1.0等都不行。

范围连接符

也可以使用-来表示范围, 比如1.2.3-2.3.4,指版本 >=1.2.3 且 <=2.3.4 的范围。

X通配符

使用x或者*来通配,比如:

~范围适配符

按照次低版本号的上一个版本来比较。

^范围适配符

按照 0 出现的最高版本号来比较:


感谢您对本文的关注,如果您对区块链技术有兴趣,可以加入我们一起探讨, 请扫码关注“可可链”的微信公众号,并留言“加入可可链”。

本文欢迎转载,转载时请注明本文来自 微信公众号“可可链”。