2014年6月14日土曜日

Swift の第一印象とよいと思う点

新しいプログラミング言語かぁと、少し穿ちながら見ていたわけですが、
Swift についていろいろ情報を見ていくうちに触ってみたいな!と思いました。

とりあえず、Appleが提供してくれている以下の電子書籍を少しずつ読んでます。

The Swift Programming Language (iBook store)


ようやく4割弱くらいかな、前半読んでみて思ったことを少し書いてみます。

まず、何よりも感じたこと。それは、、

間違えやすい書き方を減らそうとしている


CやC++をよく使ってプログラムを書くのですが、これって間違えやすいよなぁと思う点がいくつかある。

1.とにかく型安全


コンパイラが必ず型チェックを行う。以下のは、まぁ普通にできないと思うけど。

let a : String = "1.5"
let b : Int = 2

var x = a + b // コンパイルエラー

一方で、あきらかに確定できる型に対しては、積極的に暗黙に型推定を行っている。
慣れればかなり書きやすいのではないかな。

2.行末の";"がいらない


いらんやろ、と思った人が何人いるか、という行末の";"。改行コードでちゃんと切り分けられる。
もちろん一行に複数行書く場合はちゃんと";"を入れて書ける。

let a = 1.5  // ";"がいらない
let b = 1; let c = 2

3.大きな数字の桁が分かりやすいように"_"で桁割ができる


これも小さなところだけど、大きな特徴。
定数なんか見直したりしないから、打ち間違えていたらなかなか気づかない。

let MILLION = 1_000_000

4.複数行コメントがネストできる


複数行コメントアウトを、さらにそれを包含して複数行コメントアウトできるようになった。
これも以前思ったんだよね、なんでできないの?!て。
こういうところ、うれしい。

/*
    let a = 10
    /*  let b = 20 */
    let c = 30
*/

5.switchが拡張


caseの条件が一致したところだけ実行(最終行に明示的なbreakがいらない!)。
C/C++の場合はcase文が終わっても実行が次のcase文に突入していってしまう。

var x = 3
switch x {
    case 0:
        println('zero.')
    case 1:
        println('one.')
    case 2:
        println('two.')
    default:
        println('many!')
}

また、caseに複数条件書けるようになった。関数化しておけばよいが、短いコードの場合面倒なので便利。

var x = 3
switch x {
    case 0, 1, 2:
        println('less than 3.')
    case 3:
        println('equal to 3.')
    case 4, 5, 6:
        println('more than 3.')
    default:
        println('many!')
}

caseの条件を数式で書けるようにwhere句が追加された。

var x = 2
switch x {
    case let a where a % 2 == 0:
        println('even.')
    case let a where a % 2 == 1:
        println('odd.')
}


てところで、長くなってきたので、ひとまず、続く!

0 件のコメント:

コメントを投稿