码迷,mamicode.com
首页 > 编程语言 > 详细

swift:入门知识之枚举和结构体

时间:2015-10-23 18:25:31      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

枚举:

swift中的枚举有些类似于类这个概念,它有自己的属性,也可以有自己的方法

枚举中的成员有原始值和实际值之分,原始值用来枚举成员的排序次序,默认从0开始

枚举出来的成员值就是实际值

可以通过toRaw和fromRaw函数转换原始值和枚举值

也可以使用字符处或浮点数作为枚举的原始值

 

具体举例如下:

//给扑克牌内容声明一个枚举(A、2、3、4、5、6、7、8、9、10、J、Q、K)

enum Rank:Int{
   case Ace
   case Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten
   case Jack,Queen,King
    
    func simpleDescription()->String{
        switch self{
            case .Ace:return "ace"
            case .Jack:return "Jack"
            case .Queen:return "Queen"
            case .King:return "King"
            default:return String(self.toRaw())
        }
    }
}

//创建枚举实例,获取枚举元素的原始值和实际值 

let ace = Rank.Jack   //获取一个枚举元素
let originValue = ace.toRaw()            //该元素的原始值 10
let factvalue = ace.simpleDescription()  //该元素的实际值 Jack

//将一个原始值转换为实际值
if let origin = Rank.fromRaw(10){          // 10
    let fact = origin.simpleDescription()  // Jack
}

 //给扑克牌的花色声明一个枚举

enum Suit{
    case Spades,Hearts,Diamonds,Clubs
    func simpleDescription()->String{
        switch self{
        case .Spades : return "spades"
        case .Hearts : return "hearts"
        case .Diamonds:return "diamonds"
        case .Clubs  : return "clubs"
      }
   }
}

 //创建枚举实例,获取枚举元素的值

let heart = Suit.Hearts   //获取一个枚举元素
let heartsDescription = heart.simpleDescription() //元素的实际值  hearts

 

 

结构体:

 swift中使用struct创建结构体。结构体支持多个与类相同的行为,包括方法和构造器。

 一大重要的区别时代码代码之间的传递总是用拷贝(值传递),而类则是传递引用

 对于传值调用,是把实参户值传递给形参,此时形参是要被分配空间的,二呢对形参做的任何操作是不会改变实参的值的

 对于传址(引用)调用,是指传递实参的地址,即形参和实参的指针指向同一块内存区域,任何一方对数据做修改,值都会改变

 

//声明一个扑克牌结构体,它有扑克牌内容和花色这两个枚举类型的成员变量

struct Card {
    
    //成员属性
    var rank:Rank
    var suit:Suit
    
    //成员方法
    func simpleDescription()->String{
        return "The \(rank.simpleDescription()) of \(suit.simpleDescription())"
    }
}

//创建结构体成员实例,并调用成员方法

//传入两个枚举类型的引用创建一个结构体成员变量
let threeOfShapes = Card(rank: .Three, suit: .Spades)

//结构体成员变量调用成员方法
let threeOfShapesDescription = threeOfShapes.simpleDescription()   //“The 2 of shpades”

 

swift:入门知识之枚举和结构体

标签:

原文地址:http://www.cnblogs.com/XYQ-208910/p/4905048.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!