繁体   English   中英

避免 Swift 中的类型名称冲突

[英]Avoiding type name conflicts in Swift

我正在 Swift 中编写一个 static 库,它将在多个项目中重复使用。 问题是 class 和我使用的结构名称很常见,很容易与其他库/框架发生冲突。 我看不到在 Swift 中创建自己的命名空间的任何明显方法。 避免多个库/框架中的类之间名称冲突的最佳方法是什么?

你不必避免。 只需使用您喜欢的名称即可。 然后,当您想访问您的类/结构/协议...时,只需使用您的模块名称作为命名空间。

例子:

import MyModule

let a: MyModule.Result // the Result type defined inside the `MyModule`
let b: Result // Swift's Result type

正如其他人所说,如果存在冲突,您始终可以使用模块名称完全限定符号名称(参见 Cong 的回答。)

在 Objective-C 时代,Apple 建议的处理此问题的方法是使用您的姓名首字母或公司的姓名首字母作为符号名称的前缀。 我不是这个的忠实拥护者,因为它创造了丑陋的名字,掩盖了潜在的含义。

使用模块名称/框架名称的缩写版本会更好一些,Apple 倾向于这样做,例如 UIKit 视图是UIView s,而 AFNetworking 的连接AFNConnection可能是连接。

其他人在评论中强烈认为不再需要并且不再推荐这样做。 (就像我说的,反正我从来不喜欢它。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM