zoukankan      html  css  js  c++  java
  • Swift的if let和guard let的使用 <一看就懂哟>

    //
    //  ViewController.swift
    //  可选项的判断
    //
    //  Created by 思 彭 on 16/9/16.
    //  Copyright © 2016年 思 彭. All rights reserved.
    //
    
    import UIKit
    
    class ViewController: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
            
    //        demo1(x: 20, y: nil)
            demo3()
        }
    
        // MARK: - 一般写法
        func demo(x: Int?,y: Int?) {
            // 1. 强行解包有风险
            print(x! + y!)
            // 2.使用if判断  直接使用if,使代码看起来很丑陋
            if x != nil && y != nil {
                print(x! + y!)
            }
            else{
                print("x或者y为nil")
            }
        }
        
        //MARK: - ??的使用
        func demo1(x: Int?,y: Int?) {
        
            // 记得括号括起来
            print((x ?? 0) + (y ?? 0))  //20
            
            let name: String? = nil
            print((name ?? "") + ("你好"))  //你好
            // 注意: ??优先级低
            print(name ?? "" + "思思") // 思思
        }
        
        // MARK: - if let/var的使用
        
        func demo2() {
         
            let userName: String? = "思思"
            let age: Int? = 20
            
            // 判断变量的值是否为nil,有值进入分支,不需要解包
            if var name = userName,age = age{
                name = "加油"
                age = 30
                print(name + String(age))
            }
            else{
                print("name或者是age为nil")
            }
        }
        // MARK: - guard let的使用
        // 守护有值,和if let相反 ,逻辑代码少降低分支的层次
        func demo3() {
            
            let userName: String? = "思思"
            let age: Int? = 20
            guard let name = userName,oage = age else {
                
                print("name或者是age为nil")
                return;
            }
            print(name + String(age))
            
        }
    }
  • 相关阅读:
    java--堆栈
    git 修改默认编辑器
    java 二维数组的行列长度
    公钥私钥
    手机是如何定位的
    Git和svn的区别
    面试未解之谜
    删除单链表中重复元素
    深入分析事务的隔离级别
    传送
  • 原文地址:https://www.cnblogs.com/pengsi/p/5877898.html
Copyright © 2011-2022 走看看