タグ

2014年6月6日のブックマーク (2件)

  • Swift の enum型を for-in でイテレーションする方法

    例えばJavaのEnum型などはそのまま以下のようにイテレーションすることが可能なのですが、 なぜかSwiftのenum型はそのままではイテレーションすることができません。対策としてGeneratorという仕組みが標準ライブラリに用意されてますので、それを使ってenumをイテレーションできるようにします。 具体的には、Generatorを継承したクラスを作成して next() -> Element? を実装してください。ElementはAnyObjectのtypealiasなので実際には好きな型を返していただければOKです。あとはSequenceOf<T>型でGeneratorをラップしてあげればOKです。next()メソッドがnilを返すまでSequenceOf<T>はイテレーションを続けてくれます。 以下にサンプルコードを示します。 Generator内部でyieldが使えれば便利なん

    Swift の enum型を for-in でイテレーションする方法
  • [Swift] SwiftのOptionalValueの便利さ /「?」と「!」でより堅牢なコードへ - Qiita

    [Swift] Swiftのoptional valueの便利さ /「?」と「!」でより堅牢なコードへJavaObjective-CGroovyiOSSwift この記事ではSwiftのoptional valueの挙動と、利用することのメリット、具体的な利用シーンについてまとめてみました。 基的な挙動について まず?と!の挙動についてまとめてみます。 実際にどのようなケース利用するかの使い分けや、使うことのメリットについては次の章で説明します。 挙動の説明を見て、わかりづらいなと思ったら、この章は流し読みして次章の「具体的な利用シーン」とこの章を交互にみるとわかりやすいかもしれません。 optional valueな変数の宣言 Swiftでは、ただ宣言しただけの変数にはnilを代入することができません。 例えば以下のようなコードは静的にエラーになります。

    [Swift] SwiftのOptionalValueの便利さ /「?」と「!」でより堅牢なコードへ - Qiita