SWfit学习4:枚举和结构体

**

枚举

**

swift的枚举类型是一系列的值,不同于c语言中枚举类型是整数类型。每个枚举定义了个新的类型

使用 enum 创建枚举——注意 Swift 的枚举可以关联方法

    enum Rank:Int{
        case Ace = 1
        case Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten
        case Jack,Queen,King
        func simpleDescripetion() -> String{
            switch self {
            case .Ace:
                return "ace"
            case .Jack:
                return "jack"
            case .Queen:
                return "queen"
            case .King:
                 return "king"
            default:
                return "not find"
            }
        }
    }

关于switch语句,必须是完备的。如上所示,如果没有把所有case写完整,那么就需要加上default语句。如上代码,会进入default语句。如果所有case都写完整了,那么可以不需要default语句。另外,不同与c语言等,swift语言的switch语句的case会自动break。

关联枚举类型
注意 Swift 的枚举可以关联方法:

    enum OtherType{
        case Point(Int, Int)
        case Name(String)
    }
 var type:OtherType = .Name("xd")
        type = .Point(4, 9)
        switch type{
        case .Point(let iX, let iY):
            println("point X:\(iX) Y: \(iY)")
        case .Name(let strName):
            println("name:\(strName)")
        }

初始值设定。初始值类型必须要一致

    enum InitalSettingType:Character{
        case CharacterX = "a"
        case CharacterY = "r"
    }

    enum InitalIntType:Int{
        case Monday = 1, Tuesday, Wednesday, Thursday, Friday, Saturday, weekday
    }//Int类型枚举初始值会自动+1.类似c语言枚举

如果要访问枚举类型的初始值,使用rawValue方法。

 let initValue = InitalIntType.Tuesday.rawValue
        println("\(initValue)")

使用init(rawValue:)反向查找枚举类型值。

let emueValue = InitalIntType.init(rawValue:4)

**

结构

**

Swift 使用 struct 关键字创建结构。结构支持构造器和方法这些类的特性。 结构和类的最大区别在于:结构的实例按值传递(passed by value), 而类的实例按引用传递(passed by reference)

 struct Card {
        var rank:Rank

        func simpleDescripetion() -> String{
            return "the \(rank.simpleDescripetion()) "
        }
    }

 let threeOfSpades = Card(rank: .Three)
        let threeOfSpadesDescription =  threeOfSpades.simpleDescripetion()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值