变量和常量的默认值
//let的默认值要赋值
let num1 : Int?
num1 = 10
//var的默认值是nil
var num2 :Int?
可选项
如下面的demo1方法所示,使用了可选项便要解包,但是如果用户传入了nil,那么强行解包会崩溃,使用第二种解包方式为佳
demo1(x: 13, y: nil)
func demo1(x:Int?,y:Int?) {
//print(x! + y!) //第一种强行解包有风险
print((x ?? 0) + (y ?? 0)) //第二种
}
(重点!!!!!!!!)使用了可选项,便要解包比较麻烦,到处都是"?"号,"!"号,所以苹果推出了二种方法配合"可选项",guard let 和 if let,笔者推崇guard let,少一层循环
demo1(name: "王一", age: nil)
//guard let
func demo1(name : String?,age : Int?) {
guard let name = name,let age = age else {
print("姓名or年龄为nil")
return
}
print(name+"的年龄为"+String(age))
}
//if let
func demo2(name : String?,age : Int?) {
if let name = name,let age = age{
print(name + "的年龄是" + "\(age)")
}else{
print("姓名or年龄为nil")
}
}
未完