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.') }
てところで、長くなってきたので、ひとまず、続く!