002-オプションによるパッケージ解除

1124 ワード

1、オプションで強引に解く
使用!オプションでパッケージを解く
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        demo(x: 10, y: 20)
    }

    func demo(x:Int?, y:Int?) {
        //        
        print(x! + y!)//    :30
    }
2、でもそのまま使う!パッケージを強制的に解くにはリスクがあります.空の値が入力されると、プログラムがクラッシュします.
override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        demo(x: 10, y: nil)
    }

    func demo(x:Int?, y:Int?) {
        //        
        print(x! + y!)//  y:nil,   swift                     
    }
3、強引な解包によるリスクを解決し、使用??オプションの解包を解決します
??簡単な三目演算です.値がある場合は、値を使用します.値がない場合は、??を使用します.代替
override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        demo1(x: 10, y: nil)
    }
    
    func demo1(x:Int?, y:Int?) {
        
        print((x ?? 0) + (y ?? 0))
        //    :10
    }
小結:使用??強引な解包によるリスクを解決することができます