温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Solidity中怎么导入其他源文件

发布时间:2021-12-07 15:52:23 来源:亿速云 阅读:215 作者:iii 栏目:互联网科技

这篇文章主要讲解了“Solidity中怎么导入其他源文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Solidity中怎么导入其他源文件”吧!

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中怎么导入其他源文件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI