Swift基础运算符(2)
2020-07-06 本文已影响0人
_菩提本无树_
教程目录
与OC一样的内容不重复介绍
基础运算符
2020.07.06(第一更)
一.运算符
一元运算符
对单一对象进行操作的运算符,比如-3,表示负三,'-'就是一元的运算符.再比如!bool,对bool值进行取反.再比如data!解包.这些都是一元运算符.
二元运算符
对两个对象进行操作的运算符,比如加减乘除
等.
三元运算符
目前知道的只有一种就是三目运算符 a ? b :c
二.赋值运算符
/// 赋值运算符
func valuationFunc() {
let a = 12;
let b = a;
//这个时候b等于a
//元组也是如此,举例如下
let (c,d) = (12,34);
//c=12,d=34;
//有一点需要注意就是赋值运算符没有返回值,举例如下,代码会报错的,因为 a=b没有任何返回值,这个时候需要使用 a==b
// if a = b {
//
// }
if a == b {
}
}
三.组合运算符
本来不打算写的,还是写一点吧
+=,-+
举例
var e: Int;
var f = 12;
f += 3;
//结果是f = 15
//下面的写法是错误的,原因是+=符号只是给f赋值,但是整个操作没有返回值的即(f+=3)没有返回值
//e = f+=3;
四.比较运算符
等于(a == b)
不等于(a != b)
大于(a > b)
小于(a < b)
大于等于(a >= b)
小于等于(a <= b)
Swift 也提供恒等(===)和不恒等(!==)这两个比较符来判断两个对象是否引用同一个对象实例。
有一个比较有意思的就是元组也可以用来进行比较,前提就是对应的元素类型相同,元组内的内容的数量相同,元组内存储的内容不超过7个.
比较的方式
按照从左到右、逐值比较的方式,直到发现有两个值不等时停止
五.空合运算符
(a ?? b)
前提要求是a必须是可选类型.
空合运算符是三目运算和解包的结合体,(a ?? b)
分解变为a != nil ? a! : b
,a不等于空的话对a解包,否则返回b,b是一个默认值,当然b的类型要和a存储的类型一致.他还有一个名字叫短路求值。
六. 区间运算符
相当于之前For循环这一类的,多的不说直接看代码的使用
func circulation() {
let name = ["赵","钱","孙","李","周","吴","郑","王"];
//遍历范围1-5
for index in 1...5 {
print(index);
//打印结果1,2,3,4,5
}
//遍历范围1-4
for index in 1..<5 {
print(index);
//打印结果1,2,3,4
}
//遍历范围0-3
for index in [...3] {
print(name[index]);
//打印结果:赵钱孙李
}
//遍历范围5-(name.count-1)
for index in [5...] {
print(name[index]);
//打印结果:吴郑王
}
//遍历范围0-(name.count-1)
for index in [..<name.count] {
print(name[index]);
//打印结果:赵钱孙李周吴郑王
}
//遍历范围4-(name.count-1)
for index in [4..<name.count] {
print(name[index]);
//打印结果:周吴郑王
}
}