Swift开发Swift

Swift 可选类型

2017-11-17  本文已影响1人  追逐_chase
Swift.png
可选类型的简单介绍
可选类型定义和使用
// 定义的第一种方式
var num:Optional<Int> = 2;
print(num);
//  打印结果:"Optional(2)\n"

//定义的第2种方式
var num2:Int? = 3;
var num2:Int? = 3;
//错误的写法,可选类型 不可以直接操作
// num2 += 4;

//1.必须解包  !:表示强制解包
num2 ! + = 4

//上面的写法 还是有问题的 因为 可选类型 可以nil

if num2 != nil {
    num2! += 4;
}

// 2.可选绑定 

if var  result = num2 {
    print(result);
}
//打印结果:4

//可选绑定的原理: 首先判断num2是否为nil,如果是,那么if的条件是false,跳过 {},如果不是nil,if的条件为true,会把num2强制解包,赋值给result


//3.函数使用
func test(score: Int?) -> Void{
    
    if var s = score {
        print(s);
        s += 4;
        print(s);
    }
    
}
test(score: 3);


// 使用 guard  复习一下
/*
1. guard必须使用在函数里面
2. guard语句必须带有else语句
2.1 当条件表达式为true的时候跳过else语句中的内容,执行语句组内容
2.2 条件表达式为false的时候执行else语句中的内容,跳转语句一般是return、break、continue和throw
*/
func test1(score: Int?) -> Void{
    
   
    guard var s = score else {
        
        print("为nil")
        return;
    }
    
    s+=1;
    print(s);
    
}


test1(score: 3);

 /* These methods expect their string arguments to contain any percent escape codes that are necessary. It is an error for URLString to be nil.
 */
 public convenience init?(string URLString: String)

//从上面的解释中可以理解到 这个方法有可能会返回 nil
let url = NSURL(string:"www.baidu.com");

//正确的方式  ---使用可选类型
let url : NSURL? = NSURL(string: "www.baidu.com")
//判断不为nil时
if let tempUrl = url {
    let request = NSURLRequest(URL: tempUrl)
}

总结: 可选类型 解析的方式有4种

上一篇下一篇

猜你喜欢

热点阅读