网站建设资讯

NEWS

网站建设资讯

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中怎么导入其他源文件
URL标题:http://cdweb.net/article/jshped.html