专栏首页一“技”之长Swift解读专题三——基础运算符 原

Swift解读专题三——基础运算符 原

Swift解读专题三——基础运算符

一、引言 

        运算符是编程语言不可缺少的一个部分,Swift中除了支持C中的运算符外,还提供了一些更加强大的运算符功能,例如取余符%可以用来计算浮点数,另外新增了两种范围运算符。Swift中有3类运算符:

1.一元运算符

运算符作用于一个操作数,可以出现在操作数前或者操作数后。

2.二元运算符

运算符作用于两个操作数,出现在两个操作数中间。

3.三元运算符

运算符作用于三个操作数间。

二、赋值运算符

        赋值运算符用=符号表示,用于初始化或者更新一个量值,示例如下:

//将字符串“hello world” 赋值给变量str
var str = "Hello, world"
//更新变量str的值
str = "new value"

如果赋值运算符的右边是一个元组,其也可以将元组进行分解赋值,示例如下:

//对元组进行分解赋值
var (x,y) = (1,2)

与C与Objective-C不同,Swift的中赋值运算符并不会返回一个值,很多初学者在进行if语句的使用时,经常会犯的一个错误就是将赋值运算符当做等于运算符来使用,这些错误在Swift语言中都将被避免,因为如果在if语句的判断条件中使用的是赋值运算符,编译器将会直接抛出错误。

三、算术运算符

        Swift中支持的基础的算数运算符有7种,加(+)、减(-)、乘(*)、除(/)、取余(%)、正号(+)、负号(-)。Sring类型的数据是支持通过+运算符来进行拼接的,示例如下:

var newStr = "hello"+"world"

Swift中的%运算符比Objective-C更加强大,其除了支持整数的取余操作外,还可以支持浮点数的取余操作,示例如下:

var value1 = 10%3 //余数1
var value2 = -10%3 //余数-1
var value3 = 10%4.5 //余数1
var value4 = -10%4.5 //余数-1

对于正号和负号操作符也被称为一元加操作符与一元减操作符,一元减操作符会改变数据的正负性,一元加操作符只会返回数值本身,并没有做任何操作,示例如下:

var tmp = -3;
+tmp//-3
-tmp//3

四、复合赋值运算符

        Swift中提供了将一个算术运算符与赋值运算符结合使用的复合赋值功能,示例如下:

tmp+=3  //tmp = tmp +3
tmp-=3  //tmp = tmp -3
tmp*=3  //tmp = tmp *3
tmp/=3  //tmp = tmp /3
tmp%=3  //tmp = tmp %3

五、比较运算符

        Swift支持Objective-C中所有的比较运算符,比较运算符将会返回一个Bool类型的值:

1==2 //等于比较
1<2  //小于比较
1>2  //大于比较
1 != 2 //不等于比较
1<=2  //小于等于比较
1>=2  //大于等于比较

除了上面列举出的6种比较运算符外,Swift中还提供了两个特殊的比较运算符===和!==,这两个比较运算符用于比较引用是否相同。

        Swift中的元组也可以进行比较,但是其有两个前提需要注意:

1.元组中元素的个数相同且对应位置的元素类型相同。

2.元组中的元素可以进行比较操作。

当元组进行比较时,按元素顺序进行逐个比较,直道某个元素比较出结果后作为元组的比较结果。

(1,"123")>(0,"234") //true
(1,"123")>(1,"456") //false

三元运算符可以理解为一个简写的if else 语句,示例如下:

var a = 1>2 ? 1:2 //如果1>2成立 a=1 a=2

六、空聚合运算符

        空聚合运算符也是Swift语言中独有的一个运算符,其设计的思路是基于更加方便的使用Optional值的目的。对于Optional类型的值,开发者一般会需要使用?进行可选拆包或者!进行强制拆包来获取其原始值,空聚合运算符??提供了更加使用的方式,示例如下:

var Op1:String?
var Op2:String? = "123"
//这个表达式将返回Op2 其意义是 如果Op1不为nil,则对其进行强制拆包 将值返回,如果为nil,则返回Op2
var realStr = Op1 ?? Op2
//上面的表达式和下面这个表达式意义相同
Op1 != nil ? Op1! : Op2

七、区间运算符

        Swift中还提供了区间运算符,在for-in循环中,区间运算符会被经常使用到,示例如下:

//a...b为闭区间写法
for index in 0...3 {
    print(index)
}
//a..<b为左闭右开区间
for index in 0..<3 {
    print(index)
}

八、逻辑运算符

        Swift中支持与&&、或||、非!三种逻辑运算符,逻辑运算符只能操作Bool值,示例如下:

var one = true
var two = false
one&&two //false
one||two //true
!one     //false

逻辑运算符在复合使用时,最好使用小括号进行模块分隔,增强可读性。

专注技术,热爱生活,交流技术,也做朋友。 ——珲少

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Swift专题讲解二十三——高级运算符 原

            除了前边博客中介绍的基本运算符外,Swift中还支持更多高级运算符,也支持开发者进行运算符的自定义。Swift中的算符运算符有一个特点,其不会产...

    珲少
  • JavaScript基础之三——基本运算符 原

        大多数语言支持的基本运算符都差别不大。其中最常用的莫属赋值运算符,编程初学者总是会将赋值运算符与相等运算符混淆,需要注意,赋值运算符用于将等号右侧的值赋...

    珲少
  • Objective—C语言的新魅力——Nullability、泛型集合与类型延拓

            在Xcode7中,iOS9的SDK已经全面兼容了Objective-C的一些新特性和新功能。这些功能都只作用于编译期,对程序的运行并没有影响,因...

    珲少
  • Go语言学习01

    安包
  • 【程序源代码】《零基础学编程-python》第2期20200622

    什么是运算符?运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。在vb2005中运算符大致可以...

    程序源代码
  • C语言入门笔记2

    我们上小学的时候都学过各种运算,如:加法运算、乘法运算、混合运算等,而运算就要用到运算符,如:+、-、×、÷等等。

    用户6755376
  • c#运算符

    C和C++开发人员应很熟悉大多数C#运算符,这里为新程序员和VB开发人员介绍最重要的运算符,并介绍C#中的一些新变化。

    用户7886150
  • 快速学习-Scala运算符介绍

    算术运算符(arithmetic)是对数值类型的变量进行运算的,在Scala程序中使用的非常多。

    cwl_java
  • Python|运算符的运用

    Python支持运行的运算符主要包括算术、赋值、比较等八个运算符,可以通过运算符进行简单的操作。操作运算符的难度不大但是需要准确掌握。

    算法与编程之美
  • 03 . Python入门之运算符

    除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组.

    常见_youmen

扫码关注云+社区

领取腾讯云代金券