命名空间
- Objective-C一个一直以来令人诟病的地方就是没有命名空间,在应用开发时,所有的代码和引用的静态库最终都会被编译到同一个域和二进制中。这样的后果是一旦我们有重复的类名的话,就会导致编译时的冲突和失败。
- 在Swift中,由于可以使用命名空间了,即使是名字相同的类型,只要是来自不同的命名空间的话,都是可以和平共处的。
- Swift的命名空间是基于module而不是在代码中显示的指明,每一个module代表了Swift中的一个命名空间。也就是说,同一个target里的类型名称还是不能相同的。
- 另一种策略是使用类型嵌套的方法来指定访问的范围。常见做法是将名字重复的类型定义到不同的struct中,以此避免冲突。struct中可以定义class,class中也可以定义class,这就是所谓的类型嵌套。
网友评论