タグ

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

  • なぜ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
    advblog
    advblog 2018/07/18
  • マジレスすると『Optional(2018)年』を恐れる必要はない - Qiita

    あけましておめでとうございます。新年早々おもしろツイートがバズっていました。 おっ、null安全だ pic.twitter.com/RFta3RFXxu — yuga panda (@yugapanda) 2018年1月1日 これは、ネタとしてはおもしろいんですが、 Optional について良く知らないと 「 null 安全とか言っても『Optional(2018)年』 みたいな新しい問題を生んでしまうんだな。」 とミスリーディングされてしまう可能性があります。なので、 『Optional(2018)年』と表示されること自体は問題ではなく、むしろ null 安全( null safety )のために必要である 『Optional(2018)年』は確実に防ぐことができ、心配する必要はない ということをマジレスしてみます。 そもそも何が問題なのか 今回『Optional(2018)年』と表示

    マジレスすると『Optional(2018)年』を恐れる必要はない - Qiita
    advblog
    advblog 2018/01/05
  • JavaプログラマのためのKotlin入門 - Qiita

    KotlinAndroid の公式言語になることが Goole I/O 2017 で発表されました。 Java プログラマが Kotlin を始めることがこれから多くなると思うので、 Kotlin をスムーズに始められるように次の 3 点についてまとめます。 Javaとほぼ同じところ 新しい考え方が必要でつまづきがちなところ Kotlinならではの便利なこと すべてを一つの投稿にすると長くなるので連載形式とし、投稿では最初の「Javaと同じところ」について説明します。 Kotlinって何? 題の前に、 Kotlin について簡単に説明します。 まずは↓の Android のコードを見て下さい。これは Android Studio が生成するテンプレートの Kotlin 版です。 Android アプリ開発者であれば、初見でも概ね何をしているのかわかると思います。 class Ma

    JavaプログラマのためのKotlin入門 - Qiita
    advblog
    advblog 2017/05/19
  • Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい - Qiita

    これは Swift Tweets の発表をまとめたものです(次回開催はこちら)。イベントのスポンサーとして Qiita に許可をいただいた上で投稿しています。 ありがとうございました!Q&Aは他の人の発表中でも構わないのでリプを飛ばして下さい。 続いては僕 @koher の発表で、タイトルは "Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい" です。 #swtws — koher (@koher) 2017年1月14日 第 1 部: Swift の 4 種類のエラーについて あまり知られてませんが、エラー処理について、 Swift 2.0 設計時に Core Team がまとめた "Error Handling Rationale and Proposal" というドキュメントがあります。このドキュメントは、僕が去年 try! Swift で発表した際にも参考文献にしまし

    Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい - Qiita
    advblog
    advblog 2017/01/16
  • null安全でない言語は、もはやレガシー言語だ - Qiita

    これらは、表中の「リプレース対象言語」に挙げたように、多くのメジャー言語に対する代替手段でもあります。 Java の代わりには Kotlin や Ceylon が、 JavaScript には TypeScript や Flow が、 Objective-C には Swift が、そして PHP には Hack があります。 Python は自身に null 安全 を取り込みました。 Crystal は直接 Ruby と連携して使えるわけではありませんが、 Ruby 風の null 安全 な言語です。 RustC++ の代替を目指して開発され、 Firefox の一部で C++ のコードを置き換えるのに使われています [^100] 。 null が引き起こしてきた数々の問題を考えると、僕は、 null 安全 は GC (やその他の安全なメモリ管理手法)に匹敵するプログラミング言語の進

    null安全でない言語は、もはやレガシー言語だ - Qiita
    advblog
    advblog 2016/11/07
  • TensorFlowで学習したモデルを使ってiOS/Swiftで実行する - Qiita

    最近 Qoncept では TensorFlow を使った案件が続いており、その中で TensorFlow を iOS 上で使いたいことがありました。 ぱっと浮かんだ選択肢は次の二つでした。 TensorFlow を iOS 用にビルドして C++APISwift から叩く 学習は TensorFlow / Python で行って、テンソルの計算だけを iOS / Swift でシミュレーションする しかし、前者ついては、まだ TensorFlow を iOS 用にビルドできなさそうでしたしできるようになりました(コメント参照)、たとえできたとしても C++APISwift から叩くのは辛そうです。 TensorFlow がありがたいのは学習時の自動微分等の機能であって、学習済みのモデルを利用するときはただテンソルの計算をしてるだけです。別に学習を iOS 上でやり

    TensorFlowで学習したモデルを使ってiOS/Swiftで実行する - Qiita
    advblog
    advblog 2016/05/17
  • JavaのOptionalのモナド的な使い方 - Qiita

    NullPointerException 嫌いですよね!そんなときに頼りになるのが Java 8 から導入された Optional です。 でも、 null の代わりに Optional を積極的に使うとコードが Optional だらけになり、特に次のような場合に面倒くさいです。 Optional<Integer> a があるとき、 a の値を二乗したい。ただし、 a が empty の場合は empty を得たい。 Optional<Double> a があるとき、 a の平方根を計算したい。ただし、 a が empty または負の数の場合は empty を得たい。なお、 Math.sqrt を安全にした(負の数を渡すと empty を返す)関数 Optional<Double> safeSqrt(double) があるものとして考えて良い。 Optional<Integer> a と

    JavaのOptionalのモナド的な使い方 - Qiita
    advblog
    advblog 2015/12/08
  • Swift 2.0 の try, catch ファーストインプレッション - Qiita

    WWDC 2015 で Swift 2.0 が発表されました。オープンソース化などのうれしいニュースでも盛り上がっていますが、言語仕様としては try, throw, catch が導入されるという大きな変更がありました。投稿は、 The Swift Programming Language の新章 Error Handling を読み、多少のコードを書いた上での個人的な感想です。 結論から言うと、 try, catch の導入は良い変更だと思えないけど、 try, catch を導入する前提なら考え得る限りベストに近い仕様だった、って感じです。 よかったのは、 ErrorType は enum タイプセーフなエラー情報 エラー処理が強制されている(検査例外のような形) try! でエラーを無視できる あたりです。個人的には、 try, catch でなく Either 的なものを公式サ

    Swift 2.0 の try, catch ファーストインプレッション - Qiita
    advblog
    advblog 2015/06/10
  • SwiftのArrayのハマりどころのまとめ - Qiita

    Swiftも1.0がリリースされ、SwiftでiOSアプリを申請できるようになりました。Swiftはとても学びやすい言語ですが、 Array (や Dictionary )の挙動については最初戸惑う人が多いのではないかと思います。そこで、Swiftを学習するときに Array についてハマりそうな点をまとめました。 多くの言語では配列やリストは 参照型(Reference Type) として扱われますが、 Swiftの Array は 値型(Value Type) です。配列やリストが参照型である言語(Objective-C、C#、JavaJavaScriptPythonRuby、…)に慣れ親しんでいる人ほど、この違いに戸惑うのではないかと思います。 稿では Arrayが値型であることによってハマりがちなポイントについてまとめます 。個別のメソッドの使い方などでハマりがちな点につい

    SwiftのArrayのハマりどころのまとめ - Qiita
    advblog
    advblog 2014/09/18
  • 1