【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)"
}
自分の知っている言語と比較するとすっと入ってくる気がする。
まだ沢山あるのでまたきます。
ありがとうございました