swift – 是否可以别名导入?

swift – 是否可以别名导入?,第1张

概述在c#中引入与现有代码有很多名称冲突的库时,有一种方法可以对导入进行别名,因此您无需为每次使用完全阐明命名空间.例如: using MyCompany.MyLibrary.Model as MMM 那么你可以做到 MMM.MyObject 代替 MyCompany.MyLibrary.Model.MyObject 随着最近对swift 3.0的更新,我发现我的一些模型对象现在与Foundation 在c#中引入与现有代码有很多名称冲突的库时,有一种方法可以对导入进行别名,因此您无需为每次使用完全阐明命名空间.例如:
using MyCompany.Mylibrary.Model as MMM

那么你可以做到

MMM.MyObject

代替

MyCompany.Mylibrary.Model.MyObject

随着最近对swift 3.0的更新,我发现我的一些模型对象现在与Foundation类型发生冲突,并且我被迫在类名中使用Foundation.classname为具有NS前缀的东西添加前缀.如果我可以输入别名导入我的模型库就好了,就像上面给出的c#示例一样.这在swift 3.0中是否可行?如果没有,是否有另一种策略可以避免名称冲突导致必须在每种类型前面编写框架名称?我正在考虑像我们在obj-c中那样回到我的班级名称前缀,但是在我这样做之前我正试图探索我的选择.

通常

您可以导入特定实体以及整个模块:

import struct­ SomeModule.someStructimport class­ SomeModule.someClassimport func SomeModule.someFunc

请参阅“可导入”实体类型in the import-kind rule of Swift grammar的完整列表.

然后你可以创建一个typealias:

typealias SMSomeStruct = SomeModule.someStruct

而且,从Swift 3开始,没有与别名相结合的导入声明.

考虑与基金会实体的冲突

比如说,你有一个SomeModule.NumberFormatter类.

只需在单独的Swift文件(在导入项目中)创建两个typealases就可以防止冲突:

import Foundationimport SomeModuletypealias NumberFormatter = Foundation.NumberFormattertypealias SMNumberFormatter = SomeModule.NumberFormatter
总结

以上是内存溢出为你收集整理的swift – 是否可以别名导入?全部内容,希望文章能够帮你解决swift – 是否可以别名导入?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1041685.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存