Swift - 3.1 运算符

2023-02-18  本文已影响0人  村雨灬龑

溢出运算符

在默认情况下,当向一个整数赋超过它容量的值时,Swift 会报错而不是生成一个无效的数,给 我们操作过大或者过小的数的时候提供了额外的安全性。
同时提供三个算数溢出运算符来让系统支持整数溢出运算:

合并空值运算符

注: 表达式 a 必须是一个可选类型。表达式 b 必须与 a 的储存类型相同。该条件是官方文档是注明的,但再实际开发中的时候,b可以是任意类型的,如下图.
再之前的Swift版本中,a的类型在实际开发中也是没有限制的,直到Swift5的时候,是会有提示的, 合并空值运算符??左侧的a是非可选类型Any ,因此右侧永远不会被使用

b是任意类型
a不是可选类型

注: 当合并空值运算符右侧是一个函数的时候, 只有当??左侧是nil的时候才会调用合并空值运算符右侧的函数


区间运算符

for index in 1...5 {
    print("index = \(index)")
}
// 打印结果
// index = 1
// index = 2
// index = 3
// index = 4
// index = 5

半开区间运算符

let names = ["公孙离", "李白", "赵云", "孙尚香"]
let count = names.count
for i in 0..<2 {
    print("下标:\(i) 名字:\(names[i])")
}
// 打印结果
// 下标:0 名字:公孙离
// 下标:1 名字:李白

单侧区间

let names = ["公孙离", "李白", "赵云", "孙尚香"]
for name in names[..<3] {
    print(name)
}
// 打印结果:
// 公孙离
// 李白
// 赵云

for name in names[2...] {
    print(name)
}
// 打印结果:
// 赵云
// 孙尚香

单侧区间

倒序索引

for index in (1...5).reversed() {
    print("index = \(index)")
}
// 打印结果:
// index = 5
// index = 4
// index = 3
// index = 2
// index = 1

Comparable 区间

let welcome = "Hello,world!"
let interval = "a"..."z"
for c in welcome {
    if !interval.contains(String(c)) {
        print("\"\(c)\" 不是小写字母")
    }
}
// 打印结果:
// "H" 不是小写字母
// "," 不是小写字母
// "!" 不是小写字母
上一篇 下一篇

猜你喜欢

热点阅读