25. String? String
let optional: String? = "Hello"
let required: String = optional
! Value of optional type 'String?' not unwrapped; did you
mean to use '!' or '?'?
113. func coffeeInfoForName(name: String) -> (name: String, price: Int)? {
let coffeeInfoList: [(name: String, price: Int)] = [
(" ", 5100),
(" ", 5600),
]
for coffeeInfo in coffeeInfoList {
if coffeeInfo.name == name {
return coffeeInfo
}
}
return nil
}
coffeeInfoForName(" ")?.price // 5100
coffeeInfoForName(" ")?.price // nil
114. enum Month: Int {
case January = 1
case February
case March
case April
case May
case June
case July
case August
case September
case October
case November
case December
}
115. enum Month: Int {
case ...
func simpleDescription() -> String {
switch self {
case .January:
return "1 "
case .February:
return "2 "
case ...
return "..."
case .December:
return "12 "
}
}
}
116. let december = Month.December
print(december.simpleDescription()) // 12
print(december.rawValue) // 12
117. let october = Month(rawValue: 10)
print(october) // Optional(Month.October)
118. enum IssueState: String {
case Open = "open"
case Closed = "closed"
}
let state = IssueState(rawValue: "open")
print(state) // Optional(IssueState.Open)
125. let age: Int? = 20
switch age {
case .None: // `nil`
print(" .")
case .Some(let x) where x < 20:
print(" ")
case .Some(let x) where x < 65:
print(" ")
default:
print(" ")
}