Solidity编程语言基础知识二(Solidity源文件结构)

3.Solidity版权许可标识

        为了更好地取得用户对你智能合约的信任,你可以开源智能合约的源代码。由于开源了智能合约的源代码,可能会有企业和个人用到你的源代码,这就涉及到版权方面的法律问题。你可以在你智能合约的源文件里声明版权。

        Solidity编译器使用“SPDX版权许可标识”声明版权。SPDX版权许可标识是一个软件间交流的开放标准,即告诉别人如何使用你的智能合约。

3.1.SPDX版权许可标识书写格式

  • 书写格式:// SPDX-License-Identifier: <identifier>。
  • <identifier>是指SPDX版权许可列表的identifier,如下图画圈处 (点击查看SPDX版权许可列表网址)。例如在你的智能合约源文件中声明版权如:// SPDX-License-Identifier: MIT。MIT意思是指本智能合约是不受任何限制的免费的提供给任何人使用,但不提供任何保证,如果出现版权和法律问题,则与作者无任何关系。(点击查看SPDX版权许可标识更多的使用说明网址)。

  • 如果你不想指定一个<identifier>,或者如果源代码不开源,请将<identifier>写为UNLICENSED。注意:UNLICENSED不存在于SPDX版权许可列表中,是为智能合约提供的特殊值。

3.2.SPDX版权许可标识特殊说明

  • 版权声明一般写在智能合约源文件的首行。
  • 每个智能合约源文件都应该声明版权。
  • 编译器不会验证填写<identifier>是否属于SPDX版权许列表 (即你填写的<identifier>即使不属于SPDX版权许可列表,也不报错)。

4.Solidity版本标识

        由于Solidity语言快速发展中,可能会引起语法的变更,若是使用新的编译器编译你的之前代码,势必造成语法错误。为解决这个问题,你可以在源文件中标识适合编译此源文件的编译器版本,当使用的编译器版本不属于标识的编译器版本,则编译器会提示一个错误。

        Redix的”Solidity compiler"页面中的COMPILER选项可以更改编译器的版本。如在源文件将版本标识为大于等于0.7.0且小于0.9.0,在COMPILER选项中选择其他版本,如下图,等编译器编译完成后,则编译器弹出错误提示。

4.1.Solidity版本标识书写格式

        书写格式:pragma solidity <version range>。

        <version range>称为版本范围,由运算符和版本组成,如:pragma solidity >=2.3.2 <3.3.2,匹配大于等于2.3.2且小于3.3.2的版本。

4.2.版本结构说明

  • 书写格式是:major.minor.patch 或 X.Y.Z,如:0.2.4、1.2.12、3.3.4。
  • major:称为主版本号,当你做了对低版本不兼容的 API 修改,调整此版本号。
  • minor:称为次版本号,当你做了对低版本兼容的功能性新增,调整此版本号。
  • patch:称为修订号,当你做了对低版本兼容的问题修正,调整此版本号。

4.3.运算符说明

运算符分类

运算符

运算符说明

通配符

*

匹配任意版本。

X/x

用在次版本号和修订号上。

当用在次版本号上:匹配主版本号为指定值,次版本号和修订号为任意值的版本,如:2.x,匹配主版本号为2的任意版本。

当用在修订号上:匹配主版本号和次版本号为指定值,修订号为任意值的版本,如:2.4.x,匹配主版本号为2且次版本号为4的任意版本。

比较运算符

=

只匹配指定的版本,如:=2.3.2,只匹配2.3.2版本。在版本标识中若未指定运算符,则默认运算符为“=”。

>

匹配大于指定的版本,如:>2.3.2,匹配大于2.3.2的版本。

>=

匹配大于等于指定的版本,如:>=2.3.2,匹配大于等于2.3.2的版本。

<

匹配小于指定的版本,如:<2.3.2,匹配小于2.3.2的版本。

<=

匹配小于等于指定的版本,如:<=2.3.2,匹配小于等于2.3.2的版本。

-

匹配大于等于指定的版本且小于等于指定的版本,如:2.3.2 - 3.3.2,匹配大于等于2.3.2且小于等于3.3.2的版本。

高级运算符

^

将最左侧非零版本号设为相应版本号的指定值。

当主版本号不为零时,匹配主版本号为指定值,次版本号和修订号为任意值的版本,如:^2.3.4,匹配主版本号为2的任意版本。

当主版本号为零,次版本号不为零时,匹配主版本号为0,次版本号为指定值,修订号为任意值的版本,如:0.3.4,匹配主版本号为0,次版本号为2的任意版本。

~

根据次版本号是否存在,将主版本号或次版本号设为指定值。

当次版本号存在时,匹配主版本号和次版本号为指定值,修订号为任意值的版本,如:~2.3.4,匹配主版本号为2,次版本号为3的任意版本。

当次版本号不存在时,匹配主版本号为指定值,次版本号和修订号为任意值的版本,如:~2,匹配主版本号为2的任意版本。

并交运算符

表示且,如:>=2.3.2  <3.3.2,匹配大于等于2.3.2且小于3.3.2的版本。

||

表示或,如:>=3.3.2 || <2.3.2,匹配大于等于3.3.2或小于2.3.2的版本。

        关于版本范围更多的学习:官网学习网友总结

5.Solidity注释

        对代码进行注释说明,目的是让人能够更加轻松的了解代码。solidity由两种注释方式:单行注释和多行注释。

        单行注释:将注释写在//后面,如:// 这是一个单行注释。

        多行注释:将注释写在/* */中,如:/*

                                                                 这是一个

                                                                 多行注释。

                                                                */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值