フリーランスエンジニア/デザイナーの為のお役立ちコンテンツとテック情報をお届けする【エンデック】

フリーランスエンジニア/デザイナーの為のお役立ちコンテンツとテック情報をお届けする【エンデック】

Swift3の変更内容をプログラミングに活かす方法

Swift3にはいくつもの変更点が存在します。そのうちプログラミングに活かすべき主要なポイントにフォーカスしてみました。「Swift Evolution」における提案番号の中から、いくつか実践的なものについて詳しく見ていきましょう。

■SE-0004 Remove the ++ and — operators (リンク)
他の言語でもよく使われるインクリメント演算子は拡張表現で、加算・減算を短く表現できます。C言語圏からSwiftに入ってきた人には馴染みのある書き方と言えるでしょう。一方でSwiftを第一言語として覚える人には重荷になったり、実はx += 1と書く場合に比べて、それ程旨味がなかったりといったことがささやかれていました。C言語から脱却していき、評価順序や読み手にとって不明瞭な箇所を極力なくしていきたいという考えのもとでインクリメント・デクリメント演算子をなくすことになりました。

■SE-0007 Remove C Style for loops (リンク)
これまでは、for-inでもfor-loopsでも同等の動作を提供してきましたが、for-loops は削除されることになるようです。for-inを利用すればfor-loopsに比べて文字数も少なくすみます。for-loopsは単項のインクリメンタとデクリメンタを使用することを推奨しており、セミコロンで区切られた宣言はC言語に慣れ親しんでいないユーザにとっては学習に対してデメリットがあったのです。

■SE-0019 Swift Testing (リンク)
テストは現代のソフトウェア開発において不可欠な要素ですが、Swift Package Managerへのテストを緊密に統合することで、安定した信頼性の高いパッケージエコシステムを確保することができるようになります。具体的には、パッケージの Tests ディレクトリ以下にテストコードを置いておき、CUI で実行可能にすることでテストがしやすくなるなどが実現されます。

■SE-0025 Scoped Access Level (リンク)
これまではアクセス制御の概念は private, internal, public の3つでしたが、この変更でアクセスコントロールのルールに変更があり、新しいキーワード fileprivate と open が追加されました。
fileprivateで定義されたものは同一ファイル中からはどこからでもメンバーにアクセスできるようになっています。private の方は、同一ファイル内でも、クラスやextensionをまたぐなどスコープを超えたアクセスができなくなります。

■SE-0047:Defaulting non-Void functions so they warn on unused results (リンク)
関数やメソッドに戻り値が存在する場合、その戻り値を使用せずに無視してしまとデフォルトでコンパイラが警告してくれるという仕様の変更が実施されています。
これまでSwift2.2 においても@warn_result属性を利用することで戻り値の未使用状態を警告することができましたが、デフォルトの状態では戻り値を無視しても問題は生じませんでした。しかし、Swift3からはデフォルトの状態においても戻り値の未使用を警告してくれるようになったのです。これまで同様に無視してもよい場合には、@discardableResult 属性を付けることで警告を停止させることも可能になっています。

■SE-0048 :Generic Type Aliases (リンク)
SE-0048では、型に別名をつけることのできる型エイリアスで、型パラメータを利用することができるようになっています。従来までは、型パラメータをもつジェネリック型に対して型エイリアスを定義しようとしても型パラメータを特殊化した型エイリアスを複数用意する必要がありました。
しかし、今回の変更では、型エイリアス自体をジェネリックとすることで、その型パラメータを型エイリアスの対象となる型に渡せるように改定されているのです。

まとめ

このほかにもSwift3の変更点は数多く存在します。プログラミングに活かすという視点で考えた場合、ここで取り上げたような提案番号をあらかじめ押さえておくことが、極めて実践的と言えるでしょう。開発者にとって、すぐに役に立つ情報が常に「Swift .org」公開されておりますし、同サイト内に「API Design Guidelines」なども用意されておりますので、頻繁にチェックすることをおすすめします。

【相談無料】案件の紹介や自身のキャリアについてなど相談したい方はこちら
プロのコーディネーターが初めてフリーランスになるか悩んでいる方と個別で相談にのります

Return Top