タグ

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

  • Swift 5.x のResultに備える - Qiita

    Swift の機能提案は Swift Evolution で行われるのですが、 Swift の標準ライブラリに Result 型を追加するプロポーザル SE-0235 が承認されました。その結果、 Swift 5 で Result が標準ライブラリに追加されます。 投稿では Result とは何か いつ Result を使うべきか Result をどのように扱うべきか 今のうちに Result に備える方法 を説明します。 Result とは何か Swift にはサードパーティ製の antitypical/Result という人気ライブラリがあり、 Result に馴染みのある人も多いと思います。節では、 Result に馴染みのない人のために Result について簡単に説明します。 Result はエラーハンドリングに用いられる型で、次のように宣言されます。 public enum

    Swift 5.x のResultに備える - Qiita
  • Proposalには載っていないSwift 5のasync/awaitが素晴らしいと思う理論的背景 - Qiita

    追記 (2020-08-05) 投稿時には async/await が Swift 5 で導入されそうでしたが、 2020 年 8 月( Swift 5.2 )現在ではまだ async/await は導入されておらず、 Swift 6 での導入が有力になっています。 async/await は "Swift Concurrency Manifesto" の最初の Part に挙げられていますが、公式にアナウンスされた "On the road to Swift 6" の中で Concurrency が挙げられています。 先日、 async に関する PR が Swift リポジトリの master ブランチにマージされました。 2ヶ月ほど前、 Chris Lattner から swift-evolution に "async/await + actors" というタイトルで驚きのメールが流

    Proposalには載っていないSwift 5のasync/awaitが素晴らしいと思う理論的背景 - Qiita
  • 純粋値型Swift - Qiita

    これは Swift Tweets 2017 Summer での発表を編集したものです。 それでは、"純粋値型Swift"というタイトルで発表します。 #swtws pic.twitter.com/maVe3JYmM8 — koher (@koher) 2017年7月22日 Swift は値型を中心とした言語です。この発表では、仮に参照型を使わずに値型だけを使った場合、 Swift でどれだけのことができるかを探ります。 Swift が登場した当初、僕は Swift が値型を中心としていることに驚きました。参照型でないとできないことがあるし、比較的新しい言語は値型を参照型に見せかけてすべてが参照型であるかのように振る舞うことが多いように感じていたからです。 しかし、 Swift を使うにつれて、値型だけでできることは当初考えていたよりもずっと幅広いことがわかってきました。また、値型の特性を活

    純粋値型Swift - Qiita
  • SwiftのOptionalのベストプラクティス - Qiita

    それでは、『SwiftのOptionalのベストプラクティス』というタイトルで発表します。 #swtws pic.twitter.com/OJfz2tk4sP — koher (@koher) 2017年4月15日 2 年程前、 Qiita に『SwiftのOptional型を極める』というタイトルで投稿をしました。内容は、 Optional とは何かという説明と、 Optional の使い方を合わせたものでした。 しかし、 Swift 1 だった当時と比べると Optional 周りの状況は大きく変わり、特に使い方の部分が適切ではなくなってきました。また、僕のSwift経験値もたまって、新たな知見も蓄積されてきました。 今回の投稿では、 Swift の Optional 周りを整理し、いつ・どのように Optional を使うべきか、僕の考えるベストプラクティスを紹介します。 全体を通し

    SwiftのOptionalのベストプラクティス - Qiita
  • Swiftのコンパイラを改造して独自構文を追加する - Qiita

    去る 12 月 3 日、ついに Swift がオープンソースになりました!! 僕は、今度 try! SwiftSwift について話す予定なんですが、 Swift がオープンソースになったからには、コンパイラの中身まで見て証拠を掴んだ上で話さなければならないこともあります。 そんなわけで早速コンパイラのソースを読もうと思ったんですが、目的なく漫然と読むのも辛いです。そこで、勉強がてら Swift のコンパイラを改造して前からほしいと思っていた構文を追加してみました( リポジトリはこちら )。 改造の内容は次の二つです。 標準ライブラリに Either<L, R> という型を追加 Either<L, R> のシンタックスシュガー L|R を追加 これによって、次のようなコードが書けるようになりました。 // Int|String は Either<Int, String> のシンタック

    Swiftのコンパイラを改造して独自構文を追加する - Qiita
  • 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
  • Swiftはジェネリックなプロトコル型変数を作れないから速い仮説 - Qiita

    // Java List<String> strings = new ArrayList<String>(); ArrayList インスタンスを ArrayList 型の変数として取り回すことはめずらしく、スーパータイプである List 型として扱います。これによって、 ArrayList なのか LinkedList なのかという実装の違いを気にすることなく一般的な List としてコードを書くことができ、再利用性が高まります。 Swift では Array も Set もみんな Sequence プロトコルを満たしており、同じように Array や Set を一般的な Sequence 型として扱いたいことがあります。 Swift のプロトコルはジェネリクスの代わりに associatedtype を使うので、構文上 Sequence<String> のようには書けません。しかし、型

    Swiftはジェネリックなプロトコル型変数を作れないから速い仮説 - Qiita
  • 絶対に見逃せない投稿が、そこにはある - Qiita

    Qiita の 「見逃せない投稿」 を独自に評価してランキングするサービス Qaleidospace を作りました。 投稿では、そのようなサービスを作ろうと思った理由、投稿を評価するアルゴリズム、システム構成について書きます。 余談ですが、今なら Yearly Ranking がほぼ 2015 年の投稿ランキングとなっており、眺めていて楽しいです。 TL;DR Qiita の「見逃せない投稿」をランキングするサービス Qaleidospace を作った。 適切な評価システムがあれば、書き手も読み手もみんな幸せになれるはず。 ストック数だけで評価すると、初心者向けの投稿やキャッチーなキーワードを散りばめただけの投稿が注目されやすい。誰がストックしたのかを重視して「見逃せない投稿」を評価する。 風変わりなシステム構成: GitHub Pages でホスティング + Swift で書かれたバッ

    絶対に見逃せない投稿が、そこにはある - Qiita
  • Swift 3.0で追加されそうなEitherについて - Qiita

    Swift 2.0 が今週にもリリースされそうというタイミングで気が早いですが、 Swift 3.0 (になるかわからないけど 2.0 の次の Swift )で追加されそうな Either について説明し、どんなものになるか考えてみます。 次期 Swift で Either が追加されそうだというのは次のツイート12からです。 @NachoSoto @jspahrsummers Didn't make it for WWDC, but we plan on having standard funcs for wrapping and releasing errors into an Either. このツイートをした Joe Groff さんは AppleSwift チームのメンバーです。 投稿では、 Either とは何か、 Swift に Either が追加されるとしたらどう

    Swift 3.0で追加されそうなEitherについて - Qiita
  • モナドについてSwiftで説明してみた - Qiita

    モナドって何ですか? これをちゃんと説明できる人に会ったことがない。 ↑1に挑戦してみます。 まず、モナドには数学の圏論におけるモナドとプログラミングにおけるモナドがあります。圏論のモナドについては僕もよくわかっていません。圏論のモナドとプログラミングのモナドは同じものだというような説明がされていますが、当に等価なのか僕には判断できません(どうもプログラミングのモナドは圏論のモナドの条件を満たしていそうですが、逆は成り立たないんじゃないかと思っています)。 ここでは、 プログラミングにおけるモナド について説明します。コードはすべて Swift で書きます。モナドについて調べると、よく モナド則 について書いてあるんですが、肝心の記述が関数型言語で書かれていてわからん!となることが多いんじゃないかと思います。投稿では、 モナド則についても Swift の構文で記述します。 まず前半でモ

    モナドについてSwiftで説明してみた - Qiita
  • 今すぐObjective-CをやめてSwiftを使おう - Qiita

    はじめに この3週間ほど仕事Swiftを使ってアプリ開発をしてみました。その感想として、すべての人に当てはまるとは言えませんが、 多くのiOSアプリ開発者にとっては今すぐにSwiftを使い始める価値があると感じました(Swift 1.0がリリースされてから1ヶ月ほど経った2014年10月時点での感想です)。 そこで、この投稿では Swiftの利点とよくある不安や疑問に対する回答 を書いていきます。 対象となる読者 この投稿は次のようなiOSアプリ開発者を対象としています。 Objective-Cで十分でしょと思っている人 なんとなくSwift良さそうだけど踏み出せない人 Swiftがいいのはわかったけどまだ実案件では使えないと思う人 どうしてObjective-CよりSwiftを使った方がいいの? Optional Type(これだけでSwiftを使う価値あり) 私見ですが、Object

    今すぐObjective-CをやめてSwiftを使おう - Qiita
  • 1