手把手带你学习Swift3.0(15):可选类型使用

1.可选类型的基本使用

//: Playground - noun: a place where people can play

import UIKit


/*
 1.定义可选类型
    1> Optional 
    2> String?
 2.给可选类型进行赋值
    1> Optional("why")
    2> "why"
 3.从可选类型中取值
    name! --> 强制解包
 4.注意: 强制解包非常危险,所有先判断,再解包
 5.语法: 可选绑定
    if let name = name {
        print(name)
    }
 */

/*
class Person {
    var name : String = nil
}
 */

//var str : String = "why"

// nil是一个特殊的类型, 跟String/Int
// let m : Int = "why" 错误写法
// var name : String = nil

// 在开发中,只有可选类型才能赋值为nil, 其它类型都不能赋值为nil
// 1.定义可变类型: 泛型集合
// var m : Int = 20 定义Int类型 Array -> [String]
// 1> 定义方式一:
// var name : Optional = nil
// 2> 定义方式二: 语法糖
var name : String? = nil


// 2.给可选类型赋值
//// 2.1.赋值方式一:
//name = Optional("why")
//
//// 2.2.赋值方式二:
name = "why"


// 3.取出可选类型中的值
// print(name)
// 从可选类型中取值: 可选类型 + ! --> 强制解包
// print(name!)

// 4.注意: 强制解包非常危险, 如果可选类型为nil,那么强制解包就会崩溃
if name != nil {
    print(name!)
}


// 5.可选绑定(固定格式) : 该语法用于可选类型, 使我们使用起来可选类型更加方便
// 1> 判断name是否有值, 如果没有值,则直接不执行{}
// 2> 如果name有值,那么系统会自动对可选类型进行解包, 并且将解包后的结果赋值给前面的tempName
if let tempName = name {
    print(tempName)
}

if let name = name {
    print(name)
}

2.可选类型的应用

//: Playground - noun: a place where people can play

import UIKit

// 只要一个类型有可能为nil, 那么这个标识符的类型一定是一个可选类型

// 1.将字符串转成Int类型
let m : Double = 2.44
let n = Int(m)

let str : String = "123"
let num : Int? = Int(str) // 123/nil


// 2.根据文件名称:123.plist, 获取该文件的路径
let path : String? = Bundle.main.path(forResource: "123.plist", ofType: nil) // string/nil


// 3.将字符串转成NSURL
// 如果字符串中有中文,那么就是转化不成功, 返回结果 nil
// let url : NSURL? = NSURL(string: "http://www.520it.com") // URL/nil
let url = URL(string: "http://www.520it.com")

// 4.从字典中取出元素
let dict : [String : Any] = ["name" : "why", "age" : 18]
let value = dict["neme"] // Any/nil

你可能感兴趣的:(手把手带你学习Swift3.0(15):可选类型使用)