//运算符包括:=、==、+=、-=、>、<、>=、<=、+、-、*、/、%、!、||、&&、?: 以及新增的 区间运算符:..< 、 ...
//一元运算符:对单一对象进行操作,如:-a、!b、c!
//二元运算符:操作两个操作对象,如 a + b
//三元运算符:操作三个对象,只有一个三目运算符 a ? b : c
//==================基础的运算符=================
//赋值
let a = 10
var b = 5
b = a
let (x,y) = (1,2)//元组赋值
//if a = b {//此种写法在OC中会报警告,但可以编译;而在Swift中会报错(赋值操作无返回值,防止误写)
// print("演示错误")
//}
//加减乘除 及 正负运算符
print("字符串拼接:\("hello" + " world")") //加法运算符可用于字符串拼接
let nameStr = "张三"
if nameStr == "张三" {//判断字符串是否相等,可以用==
print("判断字符串相等的结果")
}
//负号和正号运算符 写在操作数之前 中间没有空格
let three = 3
let minusThree = -three//-3
let plusThree = -minusThree//3
let alsoThree = +minusThree//-3 (+对值无影响,但为了对称可以写)
//取余
let y1 = 9 % 4 // 1
let y2 = -9 % 4 // -1
let y3 = 9 % -4 // 1 (对负数求余时,符合会被忽略)
var aPlus = 3
aPlus += 2
aPlus -= 1
//let bPlus = a += 2 //此种写法是错误的 +=、-=组合赋值运算符 没有返回值
//元组比较:两个元组的元素相同且长度相同才可比较,比较方式是一个元素比较出结果了就返回,不理会后面的元素
let b1 = (1,"zebra") < (2,"apple") //true ,因为1<2
let b2 = (3,"apple") > (3,"bird") //false, 因为3=3,但是apple<bird(一个字母一个字母比较)
let b3 = (4,"dog") == (4,"dog")//true
//Swift只能比较7个以内元素的元组,且元组内不能有布尔类型
//空合运算符
var userDefinedColor: String?//用户自定义的颜色
let sm = userDefinedColor != nil ? userDefinedColor! : "red"//如果没有自定义的颜色,就返回默认的颜色
let kh = userDefinedColor ?? "red"//与上面的代码功能一致
//闭区间运算符 和 半开区间运算符
for index in 1...5 {
print("闭区间运算符的取值范围首尾都包括:\(index) * 2 = \(index * 2)")
}
for index in 1..<5 {
print("半开区间运算符的取值范围包括首、不包括尾部:\(index)")
}
//单侧区间
let qjArr = [1,2,3,4,5,6]
for num in qjArr[2...] {
print("单侧区间1:尾巴省略:\(num)")
}
for num in qjArr[...2] {
print("单侧区间2:头部省略:\(num)")
}
for num in qjArr[..<2] {
print("单侧的半开区间演示:\(num)")
}
let range = ...5
let rangeB1 = range.contains(6)
let rangeB2 = range.contains(2)
let rangeB3 = range.contains(-100)
print("单侧区间作为范围的演示:\(rangeB1,rangeB2,rangeB3)")
//逻辑运算符(以下是伪代码 相当于(有门的密码 && 通过了视网膜扫描)或 有钥匙 或 有紧急状态下的密码
//if 有门的密码 && 通过了视网膜扫描 || 有钥匙 || 有紧急状态下的密码{
// 都可以打开门
//}
网友评论