当前位置: 首页 > 面试题库 >

如何在Swift中使用命名空间?

百里景山
2023-03-14
问题内容

该文档仅提及嵌套类型,但尚不清楚它们是否可用作命名空间。我还没有发现任何有关命名空间的明确提及。


问题答案:

在苹果开发论坛中,
SevenTenEleven 回答了:

命名空间不是按文件的;它们是基于目标的(基于“产品模块名称”构建设置)。因此,您最终将得到如下结果:

import FrameworkA
import FrameworkB

FrameworkA.foo()

所有Swift声明都被认为是某个模块的一部分,因此即使您说“ NSLog”(是的,它仍然存在),您也会得到Swift认为的“
Foundation.NSLog”。

克里斯·拉特纳(Chris
Lattner)

也在推特上发布了有关命名空间的信息。

名称间隔在Swift中是隐式的,所有类(等)都由它们所在的模块(Xcode目标)隐式地作用域。不需要类前缀

似乎与我一直在想的完全不同。



 类似资料:
  • 问题内容: 我尝试在 Eclipse 中使用,尽管从 IntelliSense 和 Package Explorer 都可以看出,该命名空间不存在。 所以我想除了默认加载的包之外,我还必须加载其他包(在Java中称它们为库吗?)。 这是我当前的设置:( 链接无效 ) 问题答案: 您需要将Apache commons jar文件添加到项目中。您可以从此处选择所需的jar- http ://commo

  • 为什么using指令在包含在匿名命名空间中时表现得好像出现在全局范围?

  • 引入Maven依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>shardingsphere-jdbc-core-spring-namespace</artifactId> <version>${shardingsphere.version}</version> </depend

  • 引入 Maven 依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>shardingsphere-jdbc-core-spring-namespace</artifactId> <version>${shardingsphere.version}</version> </depe

  • 引入Maven依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>shardingsphere-jdbc-core-spring-namespace</artifactId> <version>${shardingsphere.version}</version> </depend

  • 目前,我正在映射一个命名空间,通过创建一个包的package-info.java文件与以下注释。 正如您所看到的,我的一个命名空间没有前缀,而另一个命名空间有前缀,这目前是有效的,但我想要另一种映射命名空间的方式,而不必创建单独的文件,任何人都知道我如何将命名空间映射放在类中的注释旁边? 在我的XML中,名称空间声明位于根元素中,如下所示: 我的类声明和注释类似于根元素的下面。 谢谢