/**
定义可选项使用?
解包使用! 准备计算
*/
---- 1. 原始可选项定义
---- none 没有值,或者 some 某一类值
let x:Optional = 10
---- 2. 简单的定义
---- `?` 用来定义y是一个可选Int 类型,可能没有值,也有可能是一个整数
let y : Int? = 20
----输出结果Optional(10),提示这是一个可选项
print(x)
print(y)
---- 1> 不同类型之间的值不能直接运算!如果没有值是nil 不是任何数据类型,不能参与计算
----print(x + y) //这个会报错
---- 2>`!`强行解包 - 从可选值中强行获取对应的非空值,如果真的是nil ,就会崩溃
---- 程序员必须为每一个 ! 负责
---- 程序中要少用!
print(x! + y!)
let z : Int?
---- 下方报错 Constant 'z' used before being initialized
---- 常量z使用前必须初始化
// print(z)
let w : Int? = nil
----下方报错(最常见的错误) : unexpectedly found nil while unwrapping an Optional value
---- 在解包的时候发现了nil值
// print(x! + w!)
// 1> 定义y 没有初始化
let y : Int?
// 2> 给初始化,初始化工作只能做一次
y = 20
print(y)
// var的可选值默认是nil
// let的可选值没有默认值
var x:Int?
x = 10
x = 100
print(x)
//
// ViewController.swift
// 005--可选项
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
demo1()
}
func demo1() {
// 1> 定义y 没有初始化
let y : Int?
// 2> 给初始化,初始化工作只能做一次
y = 20
print(y)
// var的可选值默认是nil
// let的可选值没有默认值
var x:Int?
x = 10
x = 100
print(x)
}
/// 最常见的错误 : unexpectedly found nil while unwrapping an Optional value
/// 在解包的时候发现了nil值
func demo(){
/**
定义可选项使用?
解包使用! 准备计算
*/
/// 1. 原始可选项定义
/// none 没有值,或者 some 某一类值
let x:Optional = 10
/// 2. 简单的定义
/// `?` 用来定义y是一个可选Int 类型,可能没有值,也有可能是一个整数
let y : Int? = 20
///输出结果Optional(10),提示这是一个可选项
print(x)
print(y)
/// 1> 不同类型之间的值不能直接运算!如果没有值是nil 不是任何数据类型,不能参与计算
///print(x + y) //这个会报错
/// 2>`!`强行解包 - 从可选值中强行获取对应的非空值,如果真的是nil ,就会崩溃
/// 程序员必须为每一个 ! 负责
/// 程序中要少用!
print(x! + y!)
let z : Int?
/// 下方报错 Constant 'z' used before being initialized
/// 常量z使用前必须初始化
// print(z)
let w : Int? = nil
///下方报错(最常见的错误) : unexpectedly found nil while unwrapping an Optional value
/// 在解包的时候发现了nil值
// print(x! + w!)
}
}