Swift语法支持类型嵌套,允许我们在一个类型的定义中嵌套另一个新的类型定义,该新的类型可以是枚举类型,也可以是类类型,还可以是结构体,在Swift中几乎所有的类型都是一个可嵌套类型,因为它们不是结构体就是类.Swift语法支持类型嵌套.
直接看一个花的嵌套例子:
class FlowerWorld{
//花中上帝
class var god:String{
return "花仙子"
}
//花中世界也有居民
class Resident {
//居民也有孩子,嵌套类
class Children {
var name: String = ""
}
var name:String
var gender:String
var children:Children?
var type:ResidentType
init(name:String, gender:String, type:ResidentType){
self.name = name
self.gender = gender
self.type = type
}
}
//有居民那必然有地位划分
enum ResidentType:Int{
case Woker = 1
case Farmer
case Officer
}
//花的世界怎么少得了美好的空气
struct Air {
var name:String
var amount:String
}
//以下是花世界的方法和属性
var air = Air(name: "氧气", amount: "无线")
var residents = [Resident]()
func run(){
var resident1 = Resident(name: "亚当", gender: "男", type: .Farmer)
var resident2 = Resident(name: "夏娃", gender: "女", type: .Farmer)
residents.append(resident1)
residents.append(resident2)
var child = Resident.Children()
child.name = "花世界公民的祖先"
resident1.children = child
resident2.children = child
}
func say(){
print("我们是花中世界,我们的上帝是:\(FlowerWorld.god) \n 我们呼吸\(air.name) 存量\(air.amount)\n这里有\(residents.count)位先民\n 他们的名字是\(residents[0].name)和\(residents[1].name)\n他们孕育了一个孩子,名字叫\(residents[0].children!.name)")
}
}
/*
我们是花中世界,我们的上帝是:花仙子
我们呼吸氧气 存量无线
这里有2位先民
他们的名字是亚当和夏娃
他们孕育了一个孩子,名字叫花世界公民的祖先
*/