Solidity中怎么导入其他源文件
这篇文章主要讲解了“Solidity中怎么导入其他源文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Solidity中怎么导入其他源文件”吧!
成都创新互联公司,是一家集策划、设计、技术开发一体的专业互联网产品服务公司,致力于为企业信息化提供驱动力。技术团队十年来致力于为客户提供企业网站定制,手机网站制作。先后服务了上1000家客户,包括各类中小企业、高校、政府。 成都创新互联公司将利用公司在过去十年的资源积累,力争为客户打造真正革命性的口碑产品!
solidity源文件
源文件由合约的定义,指令和编译指令组成。
编译版本标记
源文件要指定编译版本,已防止源文件被用于后续不兼容的编译器中。我们尽可能的保证代码和编译器的兼容性,但是这有时是无法做到的。所以可以去查询更新日志来了解各个版本的差别。这些发布版本由版本号来标记,版本号形式为0.x.0或者x.0.0
版本指令示例:
pragma solidity ^0.4.0;
以上标记表示该文件无法在0.4.0以前的版本下使用而且不能在0.5.0版本中使用。表示可以在4.0各个版本下使用。
可以通过npm来指定多个适用版本。
导入其他源文件
语法和语义
solidity支持和JS相像的 import导入语句,但是不支持“default export”特性。
在全局层面你可以像下面这样使用import语句
import "filename";
这个import语句从文件中引入所有的符号到全局空间中。
import * as symbolName from "filename";
生成一个新的全局名称 symbolName来引入来自文件中的所有符号。
import {symbol1 as alias, symbol2} from "filename";
引入文件中的symbol1 和symbol2,并将symbol1重命名为alias。
下面这个语法不是ES6所支持的,但是比较便于使用:
import "filename" as symbolName;
这个等价于
import * as symbolName from "filename";
路径
以上所示,fileName用“/”来做路径的分割符,”."表示当前路径。“..”表示父路径。当“."和”..“后面跟着”/“时,不认为是当前路径或者父路径。如果路径不以“."和".."开头的话,那么此路径就被认为为绝对路径。
从当前的路径中导入文件x
, 使用 import "./x" as x;
. 如果使用 import "x" as x;
那么会从全局路径中导入文件。
导入文件依赖于编译器实际中如何映射路径,通常,路径不仅仅映射到本地系统,还包括其他通道例如: ipfs, http or git 等等。
真实编译
当编译器被调用时,编译器不仅仅能够引用路径中的元素, 而且能够将路径 github.com/ethereum/dapp-bin/library
映射到本地的 /usr/local/dapp-bin/library
中,并且可以读取其中的文件。如果多重映射被允许的话, 其中最长的一个Key将会被尝试. 可以“递归映射” 例如. ""
映射到 "/usr/local/include/solidity"
. 另外, 重映射可以根据当前的上下文, 将不同版本的包映射到一个相同的名字上。
感谢各位的阅读,以上就是“Solidity中怎么导入其他源文件”的内容了,经过本文的学习后,相信大家对Solidity中怎么导入其他源文件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
本文标题:Solidity中怎么导入其他源文件
网站链接:http://hbruida.cn/article/jshped.html