Swift_3.0_初级篇09_guard-let的使用方法

/ɡɑrd/ 警卫,保卫

func  demo () -> () {
        let oName: String? = "老王"
        let oAge: Int? = 10
        // guard let 和 if let 刚好相反
        // 守护一定有值,如果 没有直接返回

        guard let name = oName, let age = oAge else {
            print("姓名或者年龄为 nil ")
            return
        }
        //代码执行至此, name 和 age 一定有值
        //通常判断是否有值之后,会做具体的逻辑实现,通常代码多
        //如果用的是 if let  凭空多了一层分支 guard降低分支层次的办法,在Swift 2.0时候推出
        print(name + String(age)) //输出 老王 10岁
     
    }

如果其中有值 为nil

func  demo1 () -> () {
        
        let oName: String? = "老王"
        let oAge: Int? = nil
        // 如果 没有值 直接返回
        guard let name = oName, let age = oAge else {
            print("姓名或者年龄为 nil ") //输出 姓名或者年龄为 nil
            return
        }
        print(name + String(age)) // 不会输出
        print("测试测试")           // 不会输出
        
    }

demo(name: "laowang", age: 18)

func demo (name:String? , age:Int?) -> () {
        
        if let name = name,let age = age {
            print(name + String(age) + "哈哈") //laowang18哈哈
            //在这里打印 name 快捷提示会有两个  
        }
        //在这里打印 name 快捷提示只有一个
        
        //使用同名的变量接受,在后续使用的都是非空的值,不需要解包
        //好处,可以避免起名的烦恼
        guard let name = name ,let age = age else {
           print("姓名年龄为 nil")
            return
        }
        print(name + String (age)) //laowang18
        
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容