BT

Swift 3 発表

| 作者: Sergio De Simone フォローする 17 人のフォロワー , 翻訳者 小林 健一 フォローする 0 人のフォロワー 投稿日 2016年10月12日. 推定読書時間: 3 分 |

原文(投稿日:2016/09/19)へのリンク

Swift 3.0がリリースされた。 Ted Kremenek氏(Appleの技術者)によれば,言語および標準ライブラリに対してたくさんの変更が行われている。 加えて,Linuxへの移植版やSwift Package Managerの初公式リリースも行われた。

Swift 3は,2015年末にAppleが言語をオープンソース化してから初のメジャーリリースとなる。 今回は,Swift evolution processを通して議論されてきた,およそ90のプロポーザルを実装している。

Swift 3.0の数々の変更が目指しているのは,Swift API Design guidelinesにて示されている,APIの明確化である。これは,Objective-Cの遺産として残されていたいくつかの要素を取り去るものだ。 この変更により,Swiftの文法は簡潔になり,一貫性が増すことになる。

  • (_により明示的に不使用としない限り)関数およびメソッドの第一引数名を要求する。これにより,以下のような記述が可能になる。
    
    aString.write(toFile: "filename", atomically: true, encoding: NSUTF8StringEncoding)
    UIFont.preferredFont(forTextStyle: UIFontTextStyleSubheadline) 
    
    以前の記述例は以下の通り。
    aString.writeToFile("filename", atomically: true, encoding: NSUTF8StringEncoding)
    UIFont.preferredFontForTextStyle(UIFontTextStyleSubheadline)
    
  • 不必要な字句は記述しなくてよい。これにより,以下のような記述が可能になる。
    UIColor.red()
    以前の記述例は以下の通り。
    UIColor.redColor()

以上の2つのルールは,組み合わさることでさらに強力になる。

aString.stringByReplacingOccurrencesOfString("A", withString: "a")

この記述例は,以下のように改善される。

aString.replacingOccurrences(of: "A", with: "a")

Swift 3が取り込んだ別の領域としては,Cocoaフレームワークに関係するC言語関数の扱いがある。 例えば,CGContext, CGAffineTansform, CGPDFDocumentなどで始まる全てのコア・グラフィック関数は,オブジェクトのメソッドとしての呼び出しが可能である。

if let ctx = UIGraphicsGetCurrentContext() {
    ctx.setFillColor(UIColor.red().cgColor)
    ...
}
CGAffineTransform(translationX: 64, y: 0)

Swift 3はさらに,言語を明瞭にすることを目指した文法の変更を含んでいる。 例えば,++および--演算子の排除, 関数引数からのvarの排除, C言語スタイルの条件式と遷移式を持つ for ループの排除である。 これらは,利点よりも欠点の方が目立つ,と判断された。

Swift 3の変更点一覧は,本稿で扱うには大きすぎる。 詳細については公式アナウンスを参照のこと。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT