//
// ViewController.swift
// 005-可選項
//
// Created by 莊壯勇 on 2018/1/2.
// Copyright © 2018年 Personal. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
demo1()
}
func demo1() {
// 1> 定義 y,沒有初始化
let y: Int?
// 2>給常量設置數值,初始化的工作能做一次
y = 20
// 再次修改常量會報錯
//y = 30
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? = 40 //= nil // = 20
// 輸出結果 Optional(10),提示這是一個可選值
print(x)
// Constant 'y' used before being initialized
// 常量y使用之前必須初始化
print(y)
// 1>不同類型之間的值不能直接運算!如果沒有值是nil 不是任何數據類型,不能參與計算
// print(x + y)
// 2>‘!’強行解包 - 從可選值中強行獲取對應的非空值
// 程序員必須爲每一個 !負責
// 程序中要少用 '!'
print(x! + y!)
}
// ViewController.swift
// 005-可選項
//
// Created by 莊壯勇 on 2018/1/2.
// Copyright © 2018年 Personal. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
demo1()
}
func demo1() {
// 1> 定義 y,沒有初始化
let y: Int?
// 2>給常量設置數值,初始化的工作能做一次
y = 20
// 再次修改常量會報錯
//y = 30
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? = 40 //= nil // = 20
// 輸出結果 Optional(10),提示這是一個可選值
print(x)
// Constant 'y' used before being initialized
// 常量y使用之前必須初始化
print(y)
// 1>不同類型之間的值不能直接運算!如果沒有值是nil 不是任何數據類型,不能參與計算
// print(x + y)
// 2>‘!’強行解包 - 從可選值中強行獲取對應的非空值
// 程序員必須爲每一個 !負責
// 程序中要少用 '!'
print(x! + y!)
}
}