iOS程序猿

swift3.0学习笔记(一) 可选类型

2016-11-03  本文已影响0人  Pamela_Liu

引入可选类型原因

可选类型的定义

let name: Optional<String> = "123"
let name2: String? = "123"

解包

解包就是获取可选变量的真实值

解包的三种慌法:
//直接判断,简单粗暴. 缺点:使用时需要加上!
if kexuan != nil{
    kexuan!
}
//此法较为优雅.先判断可选类型是否有值,若木有则返回false,若有值就强制解包,赋值给value

if let value = kexuan{
    value
}
//提高程序的可读性
func test(age:Int?){
    guard let value = age else {
        return
    }
    value
}
test(age: 16)

应用场景

// a. 把字符串转成int类型时,若为nil会报错.
let str = "a123"
let num = Int(str)
num

//b. 判断网址正确与否
let url = URL(string:"http://😋www.baidu.com")

//c. 创建图片啦
let image = UIImage(named:"abc")

//d. 函数问题
func test2 (a:Int?){
    //内部考虑
}
//加入可选类型后,外界不需要处理
//let aaaa:Int? = 90
test2(a: 10)

注意:

let image = UIImage(named:"abc")
//创建类,使用构造函数,所以imageView可以接收可选类型.
let imageView = UIImageView(frame: CGRect(x: 100, y: 100, width: 200, height: 200))
imageView.image = image
// ! 是指告诉编译器我知道它是可选类型,在使用前一定是赋值过的.可以直接用.
//但是这种转换方式不安全,一旦转换失败就会崩溃
var cc: Int! = 666

结语:本人程序媛小白一只,有激励才有成长😝,望众大神轻喷~

上一篇下一篇

猜你喜欢

热点阅读