在操场上执行时,以下代码会导致EXC_BAD_INSTRUCTION
:
func greet(person: [String:String]?, age: Int?) {
guard let name = person!["name"] where person != nil else {
return
}
}
greet(nil, age: nil)
谁能告诉我发生了什么?
答案 0 :(得分:2)
person
之后的感叹号会解除导致崩溃的可选项,因为person
为nil
。
使用可选绑定时,可以省略nil
的显式检查。
func greet(person: [String:String]?, age: Int?) {
guard let name = person?["name"] else {
return
}
}