タグ

ブックマーク / qiita.com/koher (2)

  • なぜSwiftのプロトコルはジェネリクスをサポートしないのか - Qiita

    Swift のプロトコルは、 Java や C# などのインタフェースのようなものと説明されることが多いですが、いくつかの違いがあります。最も大きな違いの一つが、 Swift のプロトコルはジェネリクスをサポートしていないということです。 Sequence プロトコルを例にして説明します。 Swift では、 Sequence プロトコルに適合した型は for 文で要素を取り出すことができます。 // Array は Sequence に適合 let array: Array<Int> = [2, 3, 5] for element in array { print(element) } struct Array<Element> はジェネリクスによって型パラメータを持ちますが、 Sequence は protocol Sequence<Element> のように宣言されているわけではあり

    なぜSwiftのプロトコルはジェネリクスをサポートしないのか - Qiita
    komlow
    komlow 2018/07/18
  • SwiftのArrayがヤバイ - Qiita

    (2015.11.18に追記) 「Swift List」 で検索するとこの投稿にたどり着いてしまいますが、関数型言語でいうところのリストをお求めの方は "Swiftでhead、tailにパターンマッチできる遅延リスト" を御覧下さい。 (2014.7.24に追記) SwiftのArrayの新仕様(beta 3以降)がヤバイどころかすばらしいのでまとめました 。 (2014.7.10に追記) SwiftのArrayがヤバくなくなりました。 投稿に書かれているのはbeta 2までの古いSwiftについての情報ですのでご注意下さい 。beta 3以降では次のような挙動となり、値型としてごく自然な挙動になりました。 var a = [11, 22, 33] var b = a a[0] = 777 // b[0]は777にならない a.append(44) a[0] = 888 // b[0]は

    SwiftのArrayがヤバイ - Qiita
    komlow
    komlow 2014/06/21
    ワオ
  • 1