//
//? ViewControllerTwo.swift
//? Swift-(1)
//
//? Created by xhc on 2018/6/20.
//? Copyright ? 2018年 xhc. All rights reserved.
//
import UIKit
classViewControllerTwo:UIViewController{
? ? overridefuncviewDidLoad() {
? ? ? ? super.viewDidLoad()
? ? ? ? demo1()
? ? }
? ? funcdemo1() {
? ? ? ? // 1> 定義 y球订,沒(méi)有初始化
? ? ? ? lety:Int?
? ? ? ? // 2>給常量設(shè)置數(shù)值,初始化的工作能做一次
? ? ? ? y =20
? ? ? ? // 再次修改常量會(huì)報(bào)錯(cuò)
? ? ? ? //y = 30
? ? ? ? print(y)
? ? ? ? // *** var 的可選值默認(rèn)為nil
? ? ? ? // *** let 的可選值沒(méi)有默認(rèn)值
? ? ? ? varx:Int?
? ? ? ? x =10
? ? ? ? x =100
? ? ? ? print(x)
? ? }
? ? // 最常見(jiàn)的錯(cuò)誤
? ? // unexpectedly found nil while unwrapping an Optional value
? ? // 再解包的時(shí)候發(fā)現(xiàn)了nil 值
? ? /**
?? ? 定義 可選項(xiàng)使用 ?
?? ? 解包使用 !,準(zhǔn)備計(jì)算
?? ? */
? ? funcdemo() {
? ? ? ? // 1.原始的可選項(xiàng)定義
? ? ? ? // none 沒(méi)有值萝喘,或者some 某一類(lèi)值
? ? ? ? letx:Optional=10
? ? ? ? // 2.簡(jiǎn)單的定義
? ? ? ? // ‘?’用來(lái)定義y 是一個(gè)可選值Int 類(lèi)型,可能沒(méi)有值爽锥,也可能有一個(gè)整數(shù)
? ? ? ? lety:Int? =40//= nil // = 20
? ? ? ? // 輸出結(jié)果 Optional(10),提示這是一個(gè)可選值
? ? ? ? print(x)
? ? ? ? // Constant 'y' used before being initialized
? ? ? ? // 常量y使用之前必須初始化
? ? ? ? print(y)
? ? ? ? // 1>不同類(lèi)型之間的值不能直接運(yùn)算!如果沒(méi)有值是nil 不是任何數(shù)據(jù)類(lèi)型,不能參與計(jì)算
? ? ? ? // print(x + y)
? ? ? ? // 2>‘畔柔!’強(qiáng)行解包 - 從可選值中強(qiáng)行獲取對(duì)應(yīng)的非空值
? ? ? ? //? 程序員必須為每一個(gè) 氯夷!負(fù)責(zé)
? ? ? ? //? 程序中要少用 '!'
? ? ? ? print(x! + y!)
? ? }
}