Swift特定的导入仍然导入整个模块?

时间:2016-11-19 01:28:58

标签: swift import

进入Swift REPL的一些有趣行为:

  1> import var Glibc.M_PI 
  2> M_PI
$R0: Double = 3.1415926535897931
  3> M_E
$R1: Double = 2.7182818284590451
  4>  

根据language documentation,我执行此导入时只能使用符号M_PI

  

进口声明

     

导入声明允许您访问在当前文件之外声明的符号。基本表单导入整个模块;它由import关键字后跟模块名称组成:

import module
  

提供更多详细信息限制导入的符号 - 您可以在模块或子模块中指定特定子模块或特定声明。使用此详细表单时,只有导入的符号(而不是声明它的模块)在当前作用域中可用。

import [import kind] [module].[symbol name]

import [module].[submodule]

但相反,M_Esqrt()sin()log()和厨房水槽现在在范围内运行。如何防止导入所有其他符号?

奇怪的是,这只发生在Swift控制台中;编译后的Swift代码不会这样做。

0 个答案:

没有答案