美文网首页首页投稿(暂停使用,暂停投稿)
Swift复习系列:几个常用的运算符类型

Swift复习系列:几个常用的运算符类型

作者: ZYiDa | 来源:发表于2017-09-04 11:26 被阅读10次

一、三目运算符

三目运算的一般类型:问题是否成立?结果1:结果2.,问题如果成立,执行结果1;相反,执行结果2
请看下面的例子,

var  sectionHeight:Int = 30
let isResult:Bool = true
sectionHeight += (isResult == false ? 20:60);
print(sectionHeight)

如果满足isResult==false,sectionHeight的增加量为20;如果不满足isResult==false,sectionHeight的增加量为60。当然最后的输出结果为:90.
提示:使用三目运算相比if-else语句,代码更加简洁一些,但是同一代码块使用大量三目运算会降低代码的可读性。

二、空合运算符

空合运算符(a ?? b)将对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认
b。表达式a必须是Optional类型。默认值b的类型必须要和a存储值的类型保持一致。
空合运算符是对以下代码的简短表达方法:

a != nil ? a! : b

上述代码使用了三目运算符。当可选类型a的值不为空时,进行强制解封(a!),访问a中的值;反之返回默认值b。空合运算符(??)提供了一种更为简洁的方式去封装条件判断和解封两种行为,显得简洁以 及更具可读性。
如下,

        /**第一种**/
        let defaultValue = "My default string value"
        var userUseString:String?
        var userReturnValue:String = userUseString ?? defaultValue
        print(userReturnValue)

        /**第二种**/
        let secondDefaultValue = "My second default value"
        var secondUseString = userReturnValue ?? secondDefaultValue
        print("\n\(secondUseString)")

第一种,userUseString的默认值为空值可选类型,所以最后返回的是defaultValue的值;
第二种,userReturnValue在这一步已经有值,不为空,所以会强制解包userReturnValue!,访问其中的值,最后的返回结果为"My default string value"

第三、区间运算符

闭区间运算

先看下面的例子

        for var a:Int in 1...5
        {
            print("\(a) * \(1) = \(a * 1)");
        }

输出结果

1 * 1 = 1
2 * 1 = 2
3 * 1 = 3
4 * 1 = 4
5 * 1 = 5

闭区间运算指在1和5之间取值,包括1和5,一般样式为a...b

半开区间

例子

        for var b:Int in 1..<5
        {
            print("\(b) * \(1) = \(b * 1)");
        }

输出结果

1 * 1 = 1
2 * 1 = 2
3 * 1 = 3
4 * 1 = 4

半开区间不同于数学上的开区间,它包含第一个数值,不包含最后一个数值,一般样式为a..<b

第四、逻辑运算符组合计算

Swift上面的逻辑或(||)和逻辑与(&&)是左结合的,所以说在多远逻辑操作符的判断中,优先处理左边的运算。
如下例子,

        let a:Int = 0
        let b:Int = 100
        let c:String = "Swift"
        let d:String = "ObjC"

        if  a >= 0 || b < 100 && c > d {
            print("这就是一个逻辑判断测试!");
        }
        else
        {
            print("测试没有通过");
        }

如上 它们会优先处理a >= 0 || b < 100,得到一个中间结果后,然后再与c >d进行逻辑与判断。
当然,我们可以使用( )括号来表明优先级,比如在 a >= 0 || (b < 100 && c > d)中,它们会优先处理(b < 100 && c > d),然后再处理 a >= 0 || mid

相关文章

  • Swift复习系列:几个常用的运算符类型

    一、三目运算符 三目运算的一般类型:问题是否成立?结果1:结果2.,问题如果成立,执行结果1;相反,执行结果2。请...

  • Swift 区间运算符

    目前有时间,打算复习一下Swift,打算抽时间写个Swift基础教程系列。今天就说一下区间运算符。 闭区间运算符 ...

  • Swift复习系列:集合类型

    在Swift中集合类型有三种Arrays、Dictionarys、Sets三种, 1.Array是有序数据的集,数...

  • 第二十四节 Swift 高级运算符

    除了加减乘除运算符,常用的位运算符在 Swift里属于高级运算符。 其它的高级运算符还有移位运算符和溢出加法运算符...

  • swift基础知识

    一 可选类型 二 空和运算符 ?? 三 区间运算符 ... 四 switch swift中的switch语句比...

  • 第七章 Swift 条件语句

    Swift 提供了以下几种类型的条件语句: ? :运算符 条件运算符 ? :可以用来替代 if...else 语句...

  • Swift5 _10_可选项的本质_运算符_扩展

    可选项的本质 可选项的本质是enum类型 溢出运算符 Swift 的算数运算符出现溢出时会抛出运行时错误Swift...

  • swift 运算符

    Swift 基本运算符 标签(空格分隔): swift 运算符 zybuluo swift 运算符 特性 赋值运算...

  • Swift - Button,Label

    Swift-Button的常用 关于Button的一些类型 Swift里Label的使用

  • Swift 比较运算符

    动机 Swift 升级至 3.0 以后,Swift 标准库中移除了对可选类型比较运算符的实现,当我们升级 Swif...

网友评论

    本文标题:Swift复习系列:几个常用的运算符类型

    本文链接:https://www.haomeiwen.com/subject/hiisjxtx.html