Swift 嵌套类型

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位先民
他们的名字是亚当和夏娃
他们孕育了一个孩子,名字叫花世界公民的祖先
*/ 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值