【Swift2/JavaScript】「A Swift Toure」をJavaScriptの書き方と比較しながらSwift2文法を眺める1

【Swift2/JavaScript】「A Swift Toure」をJavaScriptの書き方と比較しながらSwift2文法を眺める2

【Swift2/JavaScript】「A Swift Toure」をJavaScriptの書き方と比較しながらSwift2文法を眺める2

とゆうか今先端はSwift3らしいですね。3ではデクリメント演算子が廃止されるって騒がれてますね。
コツコツここを眺めていきます。


?? operator

??はその後の変数をデフォルトvalueとすることとしている。
もしnickNameがnilならfullNameを参照する

let nickName: String? = nil
let fullName: String = "John Appleseed"
let informalGreeting = "Hi \(nickName ?? fullName)"


switch文

JSと違うところはcaseの所に複数マッチするところの書き方かな??
JSの場合case節は、

case "fafa" :
case "fefe" :
とやればどちらかにmatchすればそのブロックを実行する。
swiftの場合は下のように第二引数みたいに書く。

let vegetable = "red pepper"
switch vegetable {
case "celery":
        print("Add some raisins and make ants on a log.")
case "cucumber", "watercress":
        print("That would make a good tea sandwich.")
case let x where x.hasSuffix("pepper"):
        print("Is it a spicy \(x)?")
default:
        print("Everything tastes good in soup.")
}

上のここ
let x where x.hasSuffix("pepper"):
は何しているかってhasSuffixっていう関数は引数に渡された後ろからの文字列にマッチしていればtrueを返すようです。

let url = "https://kenjimorita.jp"
print(url.hasSuffix("p")) // true
print(url.hasSuffix("jp")) // true
print(url.hasSuffix("net")) // false
なので上の場合trueが返る

whereは返り値がfalseの場合else節に行くようです。
上の場合trueなのでxに割り当てられる

今日はちょっと五輪観ますのでこの辺でーー
でわまたーーー。