加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SWfit学习4:枚举和结构体

发布时间:2020-12-15 07:20:26 所属栏目:百科 来源:网络整理
导读:** 枚举 ** swift的枚举类型是一系列的值,不同于c语言中枚举类型是整数类型。每个枚举定义了个新的类型 使用 enum 创建枚举——注意 Swift 的枚举可以关联方法 enum Rank :Int{ case Ace = 1 case Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten case Jack,

**

枚举

**

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()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读