Swift 学習メモ3
- xcode6.0.1
基本知識のまとめ
1.enum 1.1.scalaとほぼ同じ * apple公式に記載されているself.rawValueはなくなったっぽい enum Rank: Int { case Ace = 1 case Two, Three, Four, Fice, 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" default: return "ng" } } } let ace = Rank.Ace ace.toRaw() ace.simpleDescription() let two = Rank.Two two.toRaw() let jack = Rank.Jack jack.toRaw() 返り値がintなので、値は順番に割り当てられるようだ。微妙な仕様だ。 1.2.値の自動割当なし enum Suit { case Spades, Hearts, Diamonds, Clubs func simpleDescription() -> String { switch self { case .Spades: return "Spades" case .Hearts: return "Hearts" default: return "ng" } } } let hearts = Suit.Hearts hearts.simpleDescription() こっちのほうがしっくりくるし、よく使いそう。 2.struct classと基本同じ。あんま使わない。 struct Card { var rank : Rank var suit : Suit func simpleDescription() -> String { return "rank \(rank.simpleDescription()) , suit\(suit.simpleDescription())" } } let card = Card(rank: .Three, suit: .Spades) card.simpleDescription() class Card2 { var rank : Rank var suit : Suit init(rank: Rank, suit: Suit) { self.rank = rank self.suit = suit } func simpleDescription() -> String { return "rank \(rank.simpleDescription()) , suit\(suit.simpleDescription())" } } let card2 = Card2(rank: .Three, suit: .Spades) card.simpleDescription() クラスの場合はinitがないとコンパイルできない 2.Protocol クラスやstructを拡張する objective-cと一緒。rubyのmixinのほうが好み。 protocol ExampleProtocol { var simpleDescription: String {get} mutating func adjust() } class SimpleClass: ExampleProtocol { var simpleDescription: String = "a vert simple class" var anotherProperty: Int = 69105 func adjust() { simpleDescription += "adjust" } } var a = SimpleClass() a.adjust() mutatingは名前付け。javaのabstructみたいなもんかな。 3.extension 型の拡張 rubyのオープンクラスと同じ。これはrubyより洗練されている extension Int: ExampleProtocol { var simpleDescription: String { return "The number \(self)" } mutating func adjust() { self += 42 } } 10.simpleDescription 4.Generics まんまjava。このサイトではandroidでいつも紹介しているので割愛。
以上でA Swift Tourは終了。複数言語のプログラムを習得していればこのA Swift Tourを終了させればそこそこswiftでプログラムがかけると思います。
appleのLanguage Guideをみるとsubscriptとかclosureについて記載してあるので、使いたいと思う機能を写経しましょう。
というわけで次からは本格的にサンプルアプリの作成をしていきたいと思います。でわ。
ちなみにA Swift Tourはブログ用に写経しながらで5hくらいでした。参考までに。
参考サイト
0 件のコメント:
コメントを投稿