swift 0x14
nested types
문현진(arnold@css99.co.kr)
오늘은 뭘 바를까? 이번 신상은 뭘까? 궁금한 언니들은 구글 플레이에
서 “마메스"를 검색하세요.
중첩 타입?
구조체 안에 클래스 안에 열거형
중첩 타입?
struct BlackjackCard {
// nested Suit enumeration
enum Suit: Character {
case Spades = "♠", Hearts = "♡", Diamonds = "♢", Clubs = "♣"
}
// nested Rank enumeration
enum Rank: Int {
case Two = 2, Three, Four, Five, Six, Seven, Eight, Nine, Ten
case Jack, Queen, King, Ace
struct Values {
let first: Int, second: Int?
}
var values: Values {
switch self {
case .Ace:
return Values(first: 1, second: 11)
case .Jack, .Queen, .King:
return Values(first: 10, second: nil)
default:
return Values(first: self.toRaw(), second: nil)
}
}
}
중첩 타입 참조
let theAceOfSpades = BlackjackCard(rank: .Ace, suit: .Spades)
println("theAceOfSpades: (theAceOfSpades.description)")
// prints "theAceOfSpades: suit is ♠, value is 1 or 11
let heartsSymbol = BlackjackCard.Suit.Hearts.toRaw()
// heartsSymbol is "♡"

Swift 0x14 nested types

  • 1.
    swift 0x14 nested types 문현진(arnold@css99.co.kr) 오늘은뭘 바를까? 이번 신상은 뭘까? 궁금한 언니들은 구글 플레이에 서 “마메스"를 검색하세요.
  • 2.
    중첩 타입? 구조체 안에클래스 안에 열거형
  • 3.
    중첩 타입? struct BlackjackCard{ // nested Suit enumeration enum Suit: Character { case Spades = "♠", Hearts = "♡", Diamonds = "♢", Clubs = "♣" } // nested Rank enumeration enum Rank: Int { case Two = 2, Three, Four, Five, Six, Seven, Eight, Nine, Ten case Jack, Queen, King, Ace struct Values { let first: Int, second: Int? } var values: Values { switch self { case .Ace: return Values(first: 1, second: 11) case .Jack, .Queen, .King: return Values(first: 10, second: nil) default: return Values(first: self.toRaw(), second: nil) } } }
  • 4.
    중첩 타입 참조 lettheAceOfSpades = BlackjackCard(rank: .Ace, suit: .Spades) println("theAceOfSpades: (theAceOfSpades.description)") // prints "theAceOfSpades: suit is ♠, value is 1 or 11 let heartsSymbol = BlackjackCard.Suit.Hearts.toRaw() // heartsSymbol is "♡"

Editor's Notes

  • #4  이 구조체는 커스텀 이니셜 라이저가 없으므로, 멤버단위의 이미셜라이저를 가지고 있습니다.
  • #5  이 구조체는 커스텀 이니셜 라이저가 없으므로, 멤버단위의 이미셜라이저를 가지고 있습니다.