//
// 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 ?? ) + (y ?? )) // let name: String? = nil
print((name ?? "") + ("你好")) //你好
// 注意: ??优先级低
print(name ?? "" + "思思") // 思思
} // MARK: - if let/var的使用 func demo2() { let userName: String? = "思思"
let age: Int? = // 判断变量的值是否为nil,有值进入分支,不需要解包
if var name = userName,age = age{
name = "加油"
age =
print(name + String(age))
}
else{
print("name或者是age为nil")
}
}
// MARK: - guard let的使用
// 守护有值,和if let相反 ,逻辑代码少降低分支的层次
func demo3() { let userName: String? = "思思"
let age: Int? =
guard let name = userName,oage = age else { print("name或者是age为nil")
return;
}
print(name + String(age)) }
}

Swift的if let和guard let的使用 <一看就懂哟>的更多相关文章

  1. Swift基础之守卫语句guard

    本篇文章翻译自:http://ericcerney.com/swift-guard-statement/原作者:ecerney该语法为swift2.0之后添加的新特性 最开始在Apple的Platfo ...

  2. swift中 if let 与 guard let 对比,guard会降低一个分支

    //用if let与guard let实现同一效果,会发现guard降低一个分支 //可以用if var guard var 表示定义的变量能修改值 func test(){ let name:Str ...

  3. 强制解包看 Swift 的设计

    不知道大家有没有发现,在一个 Objective-C 和 Swift 混编的 App 中,当把一个 OC 中的参数转到 Swift 时,Swift 会自动把这个变量进行强制解包.举个例子,我在 OC ...

  4. 从强制解包看 Swift 的设计

    从强制解包看 Swift 的设计 不知道大家有没有发现,在一个 Objective-C 和 Swift 混编的 App 中,当把一个 OC 中的参数转到 Swift 时,Swift 会自动把这个变量进 ...

  5. Swift中字符串转化为Class的方法

    Swift中字符串转化为Class的方法 在开发中有时候会根据字符串进行对应类的转化,这样我们就可以动态根据服务器返回的字段,动态的加载类,比如优酷,微博等APP会在节假日等动态的TabBar.这样可 ...

  6. swift 高级模式匹配 if case

    let age = 22 let sex = "girl" if (sex == "girl" && age >= 18 &&am ...

  7. Swift语言学习

    因为想要学Mac os x编程,中文教材太少了,看了很多厉害的英文教材,很多都是swift语言的了,所以决定先要大体学一下swift语言. 学习一门语言,第一件事看swift官方文档,这里附上Coco ...

  8. iOS 里面 Swift与Objective-C混编,Swift与C++混编的一些比较

        即使你尽量用Swift编写iOS程序,难免会遇到部分算法是用C++语言编写的.那你只能去问问”度娘“或“狗哥”怎么用Swift调用C++算法.   一,C,C++, Objective-C,S ...

  9. Swift 06.Closures

    Closures --闭包 看了好些文章.由于自己也是刚开始学习swift,闭包还是不是很明白.暂时先放放.等看完后面的.加深感触后,在回头总结闭包的概念. 数组中常用的闭包函数 在Swift的数组中 ...

随机推荐

  1. 记录一下UILabel加载富文本 iOS

    一般情况下我们都习惯用webview加载富文本.但是webview比较消耗内存.然后发现其实本身可以用uilabel加载,性能还不错就记录下~~ 核心方法下面两个 -(NSMutableAttribu ...

  2. 记录截取tableview图的方法

    // 截图 - (void)screenShots{ UITableView *shadowView = mainTab; // 开启图片上下文 UIGraphicsBeginImageContext ...

  3. 使用expect登录批量拷贝本地文件到多个目标主机

    #!/bin/bash # #******************************************************************** #encoding -*-utf ...

  4. [Python自学] day-18 (2) (MTV架构、Django框架、模板语言)

    一.实现一个简单的Web服务器 使用Python标准库提供的独立WSGI服务器来实现MVC架构. 首先,实现一个简单的Web服务器: from wsgiref.simple_server import ...

  5. Luogu P4398 [JSOI2008]Blue Mary的战役地图 矩阵哈希

    其实可以二分矩阵边长但是我太懒了$qwq$. 把每个子矩阵扔到$map$里,然后就没了 #include<cstdio> #include<map> #include<i ...

  6. CSS实现太极效果

    这个伪元素的位置对齐还妹搞明白 需要再研究研究   <html> <head> <title>taiji</title> <style> b ...

  7. Sysinternals

    http://baike.baidu.com/link?url=LwEFVIcB4h8WaS6sVVH2toBJ0GZUA28yymm1sLsGpDrzF3G2BCZenlHwIsYZdVJZQExE ...

  8. Python GUI编程(Tkinter)(一)

    tk官网的教程学习: https://tkdocs.com/tutorial/firstexample.html 学习blog: https://www.cnblogs.com/aland-1415/ ...

  9. ZOJ - 4114 Flipping Game

    ZOJ - 4114 Flipping Game 题目大意:给出两个串s,t,n个灯泡的序列,1代表开着,0代表关着,一共操作k轮,每轮改变m个灯泡的状态,问最终能把s串变成t串的方案数. 坤神题解. ...

  10. noi 2011

    描述 已知长度最大为200位的正整数n,请求出2011^n的后四位. 输入 第一行为一个正整数k,代表有k组数据,k<=200接下来的k行, 每行都有一个正整数n,n的位数<=200 输出 ...