【速報】新プログラミング言語「Swift」がリリースされました!

こんにちは。当ブログ初登場のNHです。
以後お見知りおきを!


早速ですが、本日発表されたばかりの新プログラミング言語、「Swift」について紹介させていただきます。




日本時間で本日3日早朝に、Appleの開発者イベントWWDCにて発表された、
新プログラミング言語「Swift」。

Apple的には、

「Objective-C、without the C」



とのことですが、いったいどういった言語なのでしょうか。


ハローワールド

println("Hello, world")
とにもかくにもハローワールド。
セミコロン不要です!


基本文法

それでは、基本的な文法について、軽く見てみましょう。


①変数・定数

var myVariable = 11
let myConstant = 77
「var」で変数を、「let」で定数を、それぞれ宣言します。
明示的に型指定しなくていいようです。
let oranges = 3
let myWords = "I have \(oranges) oranges!"
で、「I have 3 oranges!」となります。
「\()」がポイントです。


②配列

var first  = 1
var second = 2
var third = 3
let myNumbers  = [ first, second, third ] 
オブジェクトと値の使い分けをする必要がないです。
また、配列に型を指定する事が出来ます。
let myItems : String[] = ["Pencil", "Eraser", "Ruler"]


③Forループ


・for-in
for index in 1...3 {
    println("\(index) times 3 is \(index * 3)")
}
「...」でrangeを設定します。
for character in "Tongullman" {
    println(character)
}
一文字ずつ表示されます。
let names = ["Bob", "Mike", "Alex"]
for name in names {
    println("Good Morning, \(name)!")
}
配列も使えます。

・for-condition-increment

for var index = 0; index < 5; ++index {
    println("index is \(index)")
}
CライクなForループもあり。


④Switch文

let color = "blue"
switch color {
case blue:
    let message = "I like it!"
case red, green :
    let message = "I don't like it."
default:
    let message = "Maybe I like it."
}
ちなみにSwiftのSwitchは、いろんなデータが扱えます。


⑤Enum

enum Cities {
    case Tokyo
    case Osaka
    case Hiroshima
}

enum Cities {
    case Tokyo, Osaka, Hiroshima
}
とも書けます。
enum Cities{
    case Tokyo, Osaka, Hiroshima
    func getInformation() -> String {
        switch self {
        case .Tokyo:
            return "Information about Tokyo"
        case .Osaka:
            return "Information about Osaka"
        case .Hiroshima:
            return "Information about Hiroshima"
        }
    }
}
「switch self」が便利ですね。


⑥関数

func sayYes(personName: String) -> String {
    let message = personName + " says Yes!
    return message
}



⑦メソッド

class TongullmanCounter {
    var count = 0
    func increment() {
        count++
    }
    func reset() {
        count = 0
    }
}

かなりシンプル。




Swiftの主な特徴は以下です。

Cとの互換性やレガシーな部分を廃止し、モダンな言語仕様を取り込んでいるようです。


Objective-Cとランタイム・フレームワークは共通


 →Cocoa・Cocoa Touchの機能を全て利用可。
  Objective-Cで書けるものは全部書ける。

アプリの中で、Objective-Cの部分とSwiftの部分を共存させることが可能


 →Swift実装を既存のアプリへ部分的に追加させることも可能

参考:Using Swift with Cocoa and Objective-C 
Mix and Match Overview


言語仕様がモダン


 →Objective-Cって、何か複雑ですよね。
  基本的にはCのコード体系を踏襲しつつも、特殊文法がよりシンプルになるようです。

セキュア


 →変数の使用前初期化必須。オーバーフローチェック(配列と整数)。自動メモリー管理など、 セキュアな作りになっています。

パフォーマンス向上


 →LLVMコンパイラによるネイティブコードへのコンパイルにより、
  実行速度がかなり向上。
  発表によると、「Python」を1.0倍とした場合に「Objective-C」が127倍。
  「Swift」は何と220倍。
  Python基準だとわかりにくいですが、
 「Objective-C」の約1.73倍の実行速度になるようです。

リアルタイムデバッギングが可能


 →発表の中で、リアルタイム実行しながら変数の値を変えてます。非常にインタラクティブ。
  Playground上でコード編集をリアルタイムに確認できたりします。


その他詳細については言語ガイドをご覧下さい。

・言語ガイド iBooks版(無料でダウンロード可能です。1120ページ!!)
iTunes - Books - The Swift Programming Language by Apple Inc.


もしくは、PCで確認するなら、
・The Swift Programming Language (iOS Developer Library — Pre-Release)


内容はiBooks版と異なる可能性があります。



これらを総合して、Swiftの売りはというと。。

シンプルでありながら、セキュアかつ高速実行可能!


ということがいえます。

対応状況

Xcode6で完全対応



参考サイト


・ダウンロードページ
https://developer.apple.com/swift/


余談ですが、OS X 10.10 の正式名称「Yosemite」は、
何て発音するんでしょうか。
「ヨセミテ」と発音するという意見がちらほら見受けられますが、
僕は「ヨセミテぃ」な気がしますよっ。
詳しい方がいらっしゃいましたら、ご意見お待ちしています!



トンガルマンWebサイト
https://tongullman.co.jp/index.php
facebook
https://www.facebook.com/Tongullman






0 件のコメント:

コメントを投稿