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

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

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

本買う前にドキュメント読む。

The Swift Programming Language (Swift 2.2)
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Types.html#//apple_ref/doc/uid/TP40014097-CH31-ID445


Swift2

・swift2のletはJSでいうconst
・処理の終わりの「;」は要らない


数値型から文字列へのコンバート
Swift2

let label = "The width is "
let width = 94
let widthLabel = label + String(width)


文字列として出力するには、、
Swift2

let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples"
let fruitSummary = "I hava \(apples + oranges) pieces of fruit"
※シングルコーテーションはエラー


下のObject?は「dictionary」というらしい
Swift2

var occupations = [
"Malcolm" : "Captitain",
"Kaylee" : "Mechanic",
]
JSは波かっこだけどswift2はブラケットなんだね。
最後のelementの後にも「,」が許されている。
arrayはJSと同じ書き方


ArrayとDictionaryの初期化処理。
JSでいう
const emptyArray = [];
const emptyDictionary = {};
※再代入できないけど。。
Swift2

let emptyArray = [String]()
let emptyDictionary = [String: Float]()
※型をブラケット内のkeyと値に示す


型が推測できたり、関数への実引数として渡す場合はこういう書き方でいいらしい
Swift2

shoppingList = []//array
occupations = [:]//dictionary


コントロールフロー
イテレータブルなものを再帰する場合
JSでいうfor ofに近い気がしました。
Swift2

for count in 1...9 {
let kotae = 7 * count;
print(kotae);
}
//とか
let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
if score > 50 {
teamScore += 3
} else {
teamScore += 1
}
}
※if statementはBoolean expressionでなくてはならない。0への暗黙の比較ではなく
if score { ... } is an errorを意味する


・JSでいうdefault parameterのようなものがある
・型の後ろに?をつけることで空だったら「nil」が入る
・if条件にletと一緒に記述することで、値が入っていない場合も動かすことができる

var optionalString: String? = "Hello"
var greeting = "Hello"
print(optionalString == nil)//Hello
var optionalName: String? = "John Appleseed"
if let name = optionalName {
greeting = "Hello,\(name)"
}


自分の知っている言語と比較するとすっと入ってくる気がする。
まだ沢山あるのでまたきます。
ありがとうございました