• Swift -- 3.运算符与表达式


    + 加法运算符

    - 减法运算符

    * 乘法运算符

    / 除法运算符,如果两个除数都是整数类型,得到的值也是整数类型,并且分母不能为零

      如果两个除数其中有一个是浮点类型,那么结果就是浮点类型,分母可以为零,值为正/负无穷大

     % 求余运算符 两个操作数都可以是浮点类型,如果整数类型,那么第二个操作数不能为零,如果其中一个为浮点类型,第二个操作数可以为浮点类型,得到的结果为非数 nan ;0 对任何数求余都得0

         求余运算的结果正负完全取决于被除数,只要被除数是正数,结果一定是正数

    ++ 自加运算符 如果在数值左边,先给数值加1再进行其他操作,如果在数值右边,先进行其他操作再给数值加1

    var int2 = 5

    var int3 = int2++ + 5 //值为10

    int2 = 5

    var int4 = ++int2 + 5//值为11

    -- 自减运算符

    自加和自减运算符都只能用于操作变量,常量和操作数值不可以这样用

    在swift文件前端写 import Foundation 就可以使用ANSIC标准库中的<math.h>头文件中定义的数学函数来完成复杂的运算

    //求a的5次方,并将结果赋值给b

    var a = 3.2

    var b = pow(a, 5)

    //求a的平方根,并将结果赋值给c

    var c = sqrt(a)

    //计算随机数。返回一个0~10之间的伪随机数

    var d = arc4random() % 10

    //求1.57的sin函数值:1.57被当成弧度数

    var e = sin(1.57)

    位运算符:太难了,没有看

    扩展后的赋值运算符

    x += y ~~~~ x = x + y

    x -= y ~~~~ x = x - y

    x *= y ~~~~ x = x * y

    x /= y ~~~~ x = x / y

    x %= y ~~~~ x = x % y

    范围运算符

    可以很方便的构造一种数据结构

    1 闭范围运算符,包括两边的值

    var range1 = 2...6

    for num in range1

    {

        print(num)

    }

    //23456

    2 半开范围运算符

    let books = ["swift","oc","c","c++"]

    for index in 0..<books.count

    {

        print(index)

    }

    //0123

    === 恒等于,用来判断两个引用类型的变量是否指向同一个对象,类似的运算符有 !== 不恒等于

    var d1 = NSMutableArray()

    var d2 = NSMutableArray()

    print(d1 === d2)

    //false

    逻辑运算符

    && 与

    & 不短路与

    &&在判断一个值为false之后,不会再去看第二个值,而&会去计算第二个值

    || 或

    | 不短路或

    !非 只需要一个操作数,如果操作数为true,则返回false,如果操作数为false,则返回true

    ^ 异或 当两个操作数不同时返回true,相同返回false

    三目运算符 ?:

    var a = 5

    var b = 6

    var str = a>b ? "yes" : "no"

    //str 值为no

    nil合并运算符

    a ??b

    如果a值为nil,程序返回b,如果a不为nil,程序返回a

    注意,只有可选类型可以被赋值为nil,所以a一般为可选类型

    var stra = "sun"

    var name1 : String? = "tang"

    print(name1 ?? stra) //tang

    var name2 : String?

    print(name2 ?? stra) //sun

  • 相关阅读:
    linux 清空文件内容命令
    优秀的java 社区
    vue强制刷新组件 ----组件重置到初始状态
    function的json对象转换字符串与字符串转换为对象的方法
    js实现深度优先遍历和广度优先遍历
    Egg.js中使用sequelize事务
    JavaScript ES6 数组新方法 学习随笔
    eggjs的参数校验模块egg-validate的使用和进一步定制化升级
    Node.js 服务端图片处理利器
    webp图片实践之路
  • 原文地址:https://www.cnblogs.com/chebaodaren/p/5454838.html
Copyright © 2020-2023  润新知