Swift使用结构的基本示例
示例
在Swift3中,有多个访问级别。本示例使用它们,除了open:
public struct Car { public let make: String let model: String //Optional keyword: will automatically be "internal" private let fullName: String fileprivate var otherName: String public init(_ make: String, model: String) { self.make= make self.model= model self.fullName= "\(make)\(model)" self.otherName= "\(model) - \(make)" } }
假设这样myCar初始化:
let myCar = Car("Apple", model: "iCar")
Car.make(公开)
print(myCar.make)
此打印可以在任何地方使用,包括导入的目标Car。
Car.model(内部)
print(myCar.model)
如果代码与相同,则将编译该对象Car。
Car.otherName(文件私有)
print(myCar.otherName)
仅当代码与处于同一文件中时,此方法才有效Car。
Car.fullName(私有)
print(myCar.fullName)
这在Swift3中不起作用。private只能在相同的struct/中访问属性class。
public struct Car { public let make: String //public let model: String //internal private let fullName: String! //private public init(_ make: String, model model: String) { self.make= make self.model= model self.fullName= "\(make)\(model)" } }
如果实体具有多个关联的访问级别,则Swift将寻找最低的访问级别。如果私有变量存在于公共类中,则该变量仍将视为私有变量。