枚举与结构

本文详细介绍了Swift语言中的枚举类型定义及使用方法,包括如何为枚举添加关联值、实现方法,并展示了如何通过枚举实例调用这些方法。同时,还对比了结构体与类的区别。
  • 枚举:

情况1:

 1 enum Rank: Int {
 2     case Ace = 1
 3     case Two, Three, Four
 4     case Queen, King
 5     func simpleDescription() -> String {
 6         switch self {
 7         case .Ace:
 8             return "ace"
 9         case .Queen:
10             return "queen"
11         case .King:
12             return "king"
13         default:
14             return String(self.rawValue)
15         }
16     }
17 }
18 print(Rank.Ace.simpleDescription())//输出ace:实际值对方法的调用
19 var str = Rank.Ace//实际值的调用
20 //以上分别是两种调用,枚举就这点东西
21 
22 //以下为得到值之后的使用
23 print(str)//而这里,却输出Ace(实际值)
24 print(str.rawValue)//这里才输出1(原始值)
25 print(Rank.Two.simpleDescription())//输出默认
View Code

情况2:

 1 enum Suit {
 2     case Spades, Hearts, Diamonds, Clubs
 3     func simpleDescription() -> String {
 4         switch self {
 5         case .Spades:
 6             return "spades"
 7         case .Hearts:
 8             return "hearts"
 9         case .Diamonds:
10             return "diamonds"
11         case .Clubs:
12             return "clubs"
13         }
14     }
15 }
16 let heart = Suit.Hearts
17 let heartsDescription = heart.simpleDescription()
18 print(heartsDescription)
19 print(heart)
View Code

此外,第二种情况下,对实际值的调用:若变量heart的类型已知,则后面枚举实际值可用缩写,即var heart:Suit = .Hearts。


  • 结构:

结构与类极为相似,最大的区别在于结构体是传值,类是传引用。即向“对象”(临时对结构体也这样称呼)赋值时,“对象”存储的是值还是引用。

如果结构体中有方法要修改结构体,比如修改某一个成员变量的值,则需要将该方法声明为mutating,即在方法最前面写上mutating。而类不需要,可直接修改。

转载于:https://www.cnblogs.com/quanxi/p/5907407.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值