Swift学习 enum的遍历
来源:互联网 发布:visio 软件开发流程图 编辑:程序博客网 时间:2024/06/08 15:22
在Swift官方教程讲到枚举类型的时候,练习题是
EXPERIMENT
Add a method to Card that creates a full deck of cards, with one card of each combination of rank and suit.”
摘录来自: Apple Inc. “The Swift Programming Language”。 iBooks. https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewBook?id=881256329
这就想到了是否可以对enum进行遍历,即通过一下方式
for suit in Suit { // do something with suit}
发现这个方式还是不成功,,,,最后在网上搜了一下,最下面这个页面中很多人在讨论这个问题,有些解决方案让人耳目一新,所以有空的可以去看看
http://stackoverflow.com/questions/24007461/how-to-enumerate-an-enum-with-string-type
这里我比较喜欢其中一种解决方案:
func makeDeck() -> Card[] { var deck: Card[] = [] var suits: Suit[] = [.Hearts, .Diamonds, .Clubs, .Spades] for i in 1...13 { for suit in suits { deck += Card(rank: Rank.fromRaw(i)!, suit: suit) } } return deck }
enum ProductCategory : String { case Washers = "washers", Dryers = "dryers", Toasters = "toasters" static let allValues = [Washers, Dryers, Toasters]} for category in ProductCategory.allValues{ //Do something}
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:returnString(self.toRaw())
}
}
staticlet allValues = [Ace,Two, Three,Four, Five,Six, Seven,Eight, Nine,Ten, Jack, Queen, King]
}
enum Suit{
case Spades, Hearts, Diamond, Clubs
func simpleDescription() -> String{
switch self{
case .Spades:return"spades"
case .Hearts:return"hearts"
case .Diamond:return"diamond"
case .Clubs:return"clubs"
}
}
static let allValues = [Spades,Hearts, Diamond,Clubs]
}
struct Card{
var rank:Rank
var suit:Suit
func simpleDescription() -> String{
return"The \(rank.simpleDescription()) of\(suit.simpleDescription())"
}
func creatFullDeckOfCard() -> Card[]{
var cards : Card[] = []
var suits : Suit[] = [.Hearts, .Spades, .Diamond, .Clubs]
for i in 1...13{
for suit in suits{
cards +=Card(rank: Rank.fromRaw(i)!, suit: suit)
}
}
return cards
}
}
for rankin Rank.allValues{
for suit inSuit.allValues{
var card : Card =Card(rank: rank, suit: suit)
card.simpleDescription()
}
}
好像的确是第二种方法好用~~~ 收藏了
- Swift学习 enum的遍历
- 【Swift学习】Enum、Struct、Class的学习及异同
- c#中Enum 的遍历
- swift enum
- Swift enum
- enum遍历
- Swift的enum枚举类型介绍
- 详解Swift中enum类型的用法
- Swift中enum自定义类型的实现
- enum的学习运用
- C#中对于Enum类型的遍历
- 3.8 Swift数组的遍历
- Swift Enum与Switch
- swift enum Int
- swift enum 使用rawValue
- Swift中的枚举enum
- 枚举enum(Swift)
- swift enum高级用法
- 几款Android 反编译 IDE
- 南阳 325 zb的生日
- 学子天地场地申请网站设计问题总结
- 多周期共振法
- 那位帮忙提供一个java mongodb多个collection进行mapreduce的操作。
- Swift学习 enum的遍历
- DB2的目录结构(Windows下)
- JVM学习-ClassLoader的父类委托机制
- UVA 10622 - Perfect P-th Powers(数论)
- 【Linux编程】XSI IPC
- web编程之注册以及登录验证模块(PHP+mysql)
- android sdk documentation download
- Introduction to 555 timer 【数字电路】
- SqlHelper类