美文网首页
swift 学习笔记之可选类型

swift 学习笔记之可选类型

作者: 维子Vanessa | 来源:发表于2016-01-08 13:54 被阅读177次

可选类型(可以有值, 也可以没有值)

  • 在OC中我们可以给一个对象类型变量赋值为nil或者一个对象, 而在Swift中如果想给一个变量赋值为nil那么必须明确指定为可选类型才可以, 也就是说普通变量是不能赋值为nil的
    • 格式: 数据类型?
let num1: Int? = 10
// 以后但凡看到init后面跟上一个?, 就代表初始化方法返回的值是可选的

注意:

  • 可选类型是不能直接使用的, 如果想使用一个可选类型的值, 必须对可选类型进行解包 !
let str = "http://www.520it.com/"
let url = NSURL(string: str)
print(url!)
// 注意: Swift不推荐我们随便使用强制解包
let sum = num1! + num2
if let temp = num1
{
    let sum = temp + num2
}
  • 解包的含义: 告诉系统可选类型的变量, 一定有值, 如果可选类型的值没有值, 我们又进行了强制解包, 那么就会报错

  • 可选绑定

    • 专门用于解决强制解包的弊端
    • 注意: 开发中如果想使用一个可选类型的值, 也不一定一定用可选绑定, 因为如果可选类型的值较多, 而又都属于同一个逻辑, 那么一不小心就会形成if嵌套
let url2 = NSURL(string: str)
print(url2)
// 取出url2的值赋值给temp, 如果取到了值那么就可以进入if后面的大括号, 如果没有取到值(nil), 就不会进入if后面的大括号
if let abc = url2
{
    print(abc)
}
let v1: Int? = 10
let v2: Int? = 20
let v3: Int? = 30
if let n1 = v1
{
    if let n2 = v2
    {
        if let n3 = v3
        {
            let sum = n1 + n2 + n3
        }
    }
}
  • guard
    • 作用: 类似可选绑定
    • 只有条件为假(flase), 才会执行else后面大括号中的代码
    • 格式
guard 条件表达式 else
{
    // 条件为假就会执行
}
func test()
{
    guard let m1 = v1 else
    {
        print("没有值")
        return
    }
    guard let m2 = v2 else
    {
        print("没有值")
        return
    }
    guard let m3 = v3 else
    {
        print("没有值")
        return
    }
    
    let sum = m1 + m2 + m3
}
test()

相关文章

  • swift 学习笔记之可选类型

    可选类型(可以有值, 也可以没有值) 在OC中我们可以给一个对象类型变量赋值为nil或者一个对象, 而在Swift...

  • Swift学习笔记之可选类型

    和OC相比 可选类型是一个从OC走向Swift的第一个吸引目光的地方,OC是弱类型语言,所以没有可选类型的概念。 ...

  • swift学习笔记④

    Swift学习笔记 - 文集 语法篇 一、可选类型 Optional Swift 中,常量和变量是不允许赋予 ni...

  • Swift学习之可选类型

    一、定义可选类型 二、可选赋值 三、可选取值 1、强制展开在可选的名字后面加一个感叹号 ( ! ) 来获取值,感叹...

  • Swift:(五)可选类型

    Swift 可选(Optionals)类型 Swift 的可选(Optional)类型,用于处理值缺失的情况。可选...

  • Swift:基础(五)可选类型

    Swift 可选(Optionals)类型 Swift 的可选(Optional)类型,用于处理值缺失的情况。可选...

  • Swift 可选类型Optional

    Swift 可选类型Optional [TOC] 前言 本将以Swift中的可选类型为入口,介绍: 可选类型的底层...

  • Swift 可选(Optionals)类型

    Swift 可选(Optionals)类型Swift 的可选(Optional)类型,用于处理值缺失的情况。可选表...

  • Swift学习笔记(元组/可选类型)

    元组 元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。 元组的使用场景...

  • Swift语法笔记之可选类型

    1.可选类型 可选类型表示变量可以有值, 也可以没有值 C 和 Objective-C 中并没有可选类型这个概念 ...

网友评论

      本文标题:swift 学习笔记之可选类型

      本文链接:https://www.haomeiwen.com/subject/engfkttx.html