-
两个数字交换
不借助临时变量,交换两个变量的值
1234567var a = 1var b = 2a = a ^ bb = a ^ ba = a ^ bprint(a)print(b)
求无符号整数二进制中 1 的个数
给定一个无符号整型 U...
-
位取反运算符
位取反运算符 ~ 是对所有位的数字进行取反操作
123let n1:UInt8 = 255let n2 = ~n1print(n2)
位与运算符
位与运算符 & 可以对两个数的比特位进行合并,它会返回一个新的数,只有当这...
-
闭区间运算符
闭区间运算符 a...b 定义了从 a 到 b 的一组范围,并且包含 a 和 b ,a 的值不能大于 b
12345// 闭区间let range = 0...5for index in range { print(i...
-
合并空值运算符
合并空值运算符 a ?? b 如果可选项 a 有值则展开,如果没有值是 nil,则返回默认值 b
表达式 a 必须是一个可选类型,表达式 b 必须与 a 的存储类型相同
实际上是 三元运算符 作用到 Optional 上...
-
溢出运算符
在默认情况下,当向一个整数赋超出它容量的值时,swift 会报错而不是生成一个无效的数,给我们操作过大或过小的数时提供了额外的安全性
同时提供三个算术溢出运算符来让系统支持整数溢出运算
溢出加法 &+
溢出减法 &-
...
-
基本概念
一元运算符对一个目标进行操作。一元前缀运算符(如!b),一元后缀运算符(b!)
二元运算符对两个目标进行操作(a+b)同时因为它们出现在两个目标之间,所以是中缀
三元运算符操作三个目标,swift 语言也仅有一个 三元运算符,三元条件运...
-
子字符串
使用下标或者类似 prefix(_:) 的方法得到的子字符串是 Substring 类型
Substring 拥有 String 的大部分方法
Substring 可以转成 String 类型
1234let str = "...
-
字符串索引
每一个 String 值都有相关的索引类型,String.Index,他相当于每个 Character 在字符串中的位置
startIndex 属性来访问 String 中第一个 Character 的位置。endIndex 属性就是 ...
-
字符串的可变性
var 指定的可以修改
let 指定的不可修改
对比 Object-C (NSString 和 NSMutableString)
字符串是 值类型
String 值在传递给方法或函数的时候会被复制过去
赋值给常量或变量...
-
初始化空串
字面量
初始化器语法
isEmpty 检查是否为空串
123456var emptyString = ""var anotherEmptyString = String()if emptyString.isEm...