Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。switch文では、asと記述しますが、何かしっくりきません。それでいて、if文のpは、Optional型とはならない。asでもいいのではと思ってしまいます。そこには理由があるのですが、ご指摘お願いします。票2if文とswitch文の違いというよりはオプショナルバインディングとパターンマッチングの違いと言った方が良いでしょう。カッコを付けた方が少しわかりやすくなるのではないかと思います。print("else")}と言うことになります。pと言う変数宣言を成立させるという働きになります。AClassと言う式は、bの値が安全かつ確実にAClassに変換可能である場合にしか使えず、結果もOptionalにはなりませんから、この構文では使えません。パターンマッチングの方はこんなカッコの付け方になります。pでの変数宣言を成立させるという形になります。Swift言語の仕様としてのpatternは、かなり汎用の概念で、Optional型が非nilの値を持つかどうかの判定を含めた幅広い使い方ができます。(あまり良いサンプルがネット上ではすぐには見つかりませんが。asでもいいのでは」と言うのを広めに解釈して、「if文もパターンマッチングだけでいいのでは」と言う考え方もあったとは思いますが。当初のSwiftではif文ではパターンマッチングを使えなかったSwiftの特徴的概念であるOptionalの判定だけはif文でもできるようにしたかったと言った事情で、オプショナルバインディングに特化したif-letの構文が考えられたのではないかと思います。現在のSwift(確か2.0以降?)では、if文でもパターンマッチングが使えるようになりましたので、どうしてもswitch文に近い使い方をしたければ、こんな風に書くこともできます。print("else")}(caseの後のパターンを囲むカッコは、上の説明と整合性を持たせるために入れてあるもので、無くても動きます。)オプショナルバインディングとパターンマッチングの両方がif文で使えると、どちらを使った方が良いか迷う場合もありますが、「非nilかどうかを判定したいだけ」と言う場合にはやはりオプショナルバインディングの方が便利でしょう。doSomething(s)}とかになります。3.0.1のバグだと思います。)同じことが何通りもの方法でできるのはわかりにくい場合もありますが、「型判定と条件付きバインディングを同時に行いたい場合にオプショナルバインディングを使いたければ、結果がOptionalになる式を作らないといけないのでas?を使っている」と思えばわかりやすくなるのではないか...と思ったんですが、説明が長すぎてわかりやすいかどうかは微妙ですね。if-letはオプショナルバインディング(値が非nilかどうかの判定が主眼)なんだと覚えてください。ATypeと言う書き方をするのは、if-caseがなかった頃に定着したイディオムですが、「非nilかどうかを判定したいんじゃ無くてデータ型の判定をしたいんだ」と言う場合にはパターンマッチングを使う方がより直感的で良いのかもしれません。Swiftは歴史の浅い言語で、しかも言語仕様がバージョンアップのたびに大きく変化しています。「これからのSwiftでの標準的な書き方」は、これからSwiftを使う開発者が見つけて定着させていけば良いのだと思います。長くなってしまいましたが、何かお気付きの点があれば、コメント等でお知らせください。個の銅バッジオプショナルバインディング(非nil判定)がしたいのか、パターンマッチング(バリューバインディング、キャストパターン)をおこなっているのかを明確に、どちらを使うべきがわかるということですね。型チェックだけなら次のようにもかけるのですね。{...}else{...}なんて書き方もできます。オプショナルバインディング、パターンマッチング、単なる型判定、単なるnil判定など、場所によってうまく見定めていけばコードも読みやすくなると思います。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。backでnavigationが乱れる1Swiftでの「Dictionary型」戻り値について1print関数を記入してもXcode画面下部に表示されない1Documentへの保存方法1storyboardの遷移でエラーが出ます。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。