let Constant
var Variable
let implicitInteger = 70
let implicitDouble = 70.0
let explicitDouble: Double = 70
The so-called type implications
To include value in strings:
let fruitSummary = "I have \(apples + oranges) pieces of fruit."
Arrays and Dicts:
var shoppingList = ["catfish", "water", "tulips"]
shoppingList[1] = "bottle of water"
var occupations = [
"Malcolm": "Captain",
"Kaylee": "Mechanic",
]
occupations["Jayne"] = "Public Relations"
//empty
let emptyArray = String[]()
let emptyDictionary = Dictionary()
Control Flow and Optional Binding
For each
let individualScores = [75, 43 103, 87, 12]
var teamScore = 0
for score in individualScores {
if score > 50 {
teamScore += 3
} else {
teamScore += 1
}
}
teamScore
Optional Binding
var optionalString: String? = "Hello"
optionalString == nil
var optionalName:String? = "John Appleseed"
var greeting = "Hello!"
//optional binding
if let name = optionalName {
greeting = "Hello, \(name)"
}
If the optional value is nil, the conditional is false and the code in braces is skipped.
Otherwise, the optional value is unwrapped and assigned to the constant after let, which makes the unwrapped value available inside the block of code.