基本运算符

本文深入探讨Swift语言的关键特性,包括组合赋值运算符、对象内存地址判断、元组比较规则、可选类型处理及泛型使用原则。同时,解析了不同运算符的功能与使用场景,如闭区间、半闭区间和单侧区间运算符,以及逻辑运算的组合运算规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 组合赋值运算符没有返回值
//这种是错误的
let b = a += 2
  1. 两个对象判断是否是一个对象
    用 ===,!==来判断两个对象是否是一个对象,其实在判断内存地址.
    ==和!=来判断基本数据类型
class A {
    
}

class B {
    
}

var a = A()
var b = B()
var c = a

if a === c {
    print("a === c")
}else{
    print("a !== c")
}

注意:  
1. 要判断两个基本类型的值是否相当应该用==和!=   
2. 要判断两个字串是否相等应该用==和!=
3. 要判断两个对象内存地址相同应该用===和!==
  1. 元组的比较
    元组里如果有Bool类型的元素是不能比较大小的
    元组中如果元素个数大于等于7个也是不能比较的
(1, "zebra") < (2, "apple")   // true,因为 1 小于 2
(3, "apple") < (3, "bird")    // true,因为 3 等于 3,但是 apple 小于 bird
(4, "dog") == (4, "dog")      // true,因为 4 等于 4,dog 等于 dog
  1. 可选类型总结

var a: String? = "fdsa"

//1. 强拆 (确定有值的时候)
var b = a!
print("b = \(b)")

//2. 空和运算符(不确定有值,如果为空就附一个值)
var c = a ?? "defaultStr"
print("c = \(c)")

//3. 可选绑定 (不确定有值,写一些逻辑)
if let d = a {
    print("d = \(d)")
}else{
    print("a为nil")
}

//类中如果有多个属性的嵌套可以使用?或者!来拆包
class A {
    var b: B? = nil
}

class B {
    var b: Double? = 2
}

var a1 = A()
var b1 = B()

var a11: Double? = a1.b?.b

var temp: Any = a11 ?? "fsd"
print("temp = \(temp)" )
print("a11 = \(a11)")

  1. 泛型总结
    函数里会尽可能的使用泛型,如果泛型用不了再去考虑用Any,AnyObject。数组,字典,变量应该用Any,AnyObject

  2. 区间运算符

var a = ["one","two","three","four","five"]

//1. 闭区间运算符
print("闭区间运算符")
for item in 0...2 {
    print(item)
}
print("")


//2. 半闭区间运算符
print("半闭区间运算符")
for item in 0..<2 {
    print(item)
}
print("")

//3. 单侧运算符
print("单侧运算符")
for item in a[1...] {
    print(item)
}
print("")

for item in a[...2] {
    print(item)
}
print("")


for item in a[..<2] {
    print(item)
}
  1. 逻辑运算
    OC中逻辑运算不允许组合运算,要加小括号解决,swift中没问题。
    逻辑运算的组合运算元组是左结合的,就是说从左向右运算。
//逻辑运算组合运算
if 3 > 0 && 1 < 0 || 3 == 3 || 5 != 5 {
    print("true")
}else{
    print("false")
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值