zoukankan      html  css  js  c++  java
  • Swift语言学习(三)基础操作符

    操作符是用于检测、更改或者组合值的特殊符号或短语。例如,加法操作符 (+) 将两个数字加到一起 (如 let i = 1 + 2)。更复杂的例子包括逻辑与操作符 && (如 if enteredDoorCode && passedRetinaScan) 和自增操作符 ++i,就是把 i 的值加1的快捷方式。

    Swift 支持大多数标准的C 操作符并且改善了几项功能以消除常见的编码错误。赋值操作符 (=) 不返回值,是为了防止想用等于操作符(==)时不小心用成了赋值操作符。算数运算符 (+, -, *, /, % 等等) 检测并禁止值溢出,以免运算时得出的结果大于或小于类型允许的范围。

    不像C,Swift 可以对浮点数进行取余操作 (%) 。 Swift 还提供两个范围操作符 (a..<b 和 a…b) ,这在C里是没有的,用来表示一个范围的值。

    现在我们来简单介绍下 Swift 里的常用操作符。

    术语

    操作符分一元、二元和三元:

    一元操作符操作于一个单一目标(如 -a)。一元前缀操作符在它们的目标之前紧跟出现(如 !b),一元后缀操作符在它们的目标之后紧跟出现(如 i++)。 
    二元操作符操作于两个目标(如 2 + 3),是中缀操作符,因为它出现在两个目标的中间。 
    三元操作符操作于三个目标。像 C 一样,Swift 只有一个三元操作符,就是三元条件操作符 (a ? b : c)。 
    操作符影响的值称为操作数。在表达式 1 + 2 中,符号 + 是一个二元操作符,它的操作数是值 1 和 2。

    一、一元运算符

      (一)、负号运算符

      (二)、正号运算符

    注 : 乘 (*)、 除 (/)与OC用法相同

      (三)、自增、自减运算符

    自减同上,本质上 跟OC没什么差别

    二、二元运算符

     (一)、赋值运算符

            1、赋值操作符 (a = b) 用 b 的值初始化或更新 a 的值:

           2、如果赋值操作符的右边是一个有多个值的元组,它的元素可以马上被拆解为多个常量或变量:

     

        3、不像 C 和 Objective-C 里的赋值操作符,Swift 里的赋值操作符自身并不返回值。下面的语句是不行的:

     

     这个特性防止了赋值操作符 (=) 被误用作等于操作符 (==) 。Swift 帮你避免 if x = y 这些错误在代码里出现。

      (二)、取余运算符

      (三)、组合赋值运算符

     

     (四)、比较运算符

    Swift 支持所有标准的 C 比较操作符,具体功能和使用方法与C语言相同,在此不再赘述 

    等于 (a == b)

    不等于 (a != b)

    大于 (a > b)

    小于 (a < b)

    大于或等于 (a >= b)

    小于或等于 (a <= b)

     (五)、逻辑运算符

    Swift 支持基于C语言的三种标准的逻辑操作符:

    逻辑否 (!a)

    逻辑与 (a && b)

    逻辑或 (a || b)

     

    下面两个是swift新增的两个运算符:

     (六)、区间运算符

       1、全闭区间

    闭合范围操作符 (a…b) 定义了一个从 a 到 b 的范围,同时包括a 和 b 的值。a 的值必须不能大于 b 。

       2、半开半闭区间

    半开范围特别适用于从0开始的列表,如数组,一直数到(但不包括)列表的长度

     

     (七)、空合运算符

      空合运算符(a ?? b)将对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b.这个运算符有两个条件:

      表达式a必须是Optional类型

      默认值b的类型必须要和a存储值的类型保持一致

     

    三、三元运算符 

    三元条件操作符分三个部分,形式是这样的 question ? answer1 : answer2。

    例如:a > b ? a : b

    使用功能同C语言的三木运算符,在此不再赘述 

    由于苹果公司发布Swift才刚满一年所有的功能都在不断地更新完善, 所以以上的内容之作参考之用,具体请关注Swift的最新资讯,或者参考Swift API 文档,谢谢。

    欢迎加入iOS技术交流群 461069757 

  • 相关阅读:
    zabbix_agent 主动模式配置
    zabbix 监控ipmi
    超级详细全截图化VMware 安装ubantu
    docker 部署
    C# DataTable和List转换操作类
    C#类型转换工具类
    C# 注册windows 服务
    C# wsdl.exe 生成类文件
    visual studio code download url
    c# xml序列化和反序列化
  • 原文地址:https://www.cnblogs.com/496668219long/p/4596280.html
Copyright © 2011-2022 走看看