BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Swift 3 発表

Swift 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
 
 

この記事に星をつける

おすすめ度
スタイル

BT