【学习笔记】swift 基础部分 2

来源:互联网 发布:格式化成json字符串 编辑:程序博客网 时间:2024/05/16 16:02
  • 赋值运算符
赋值运算符( a = b ),表示用b 的值来初始化或更新a 的值
赋值= 两边的个数应相同
let a = 0,b = 1
var c = 5,d = 7
(c,d) = (a,b)
print(a,b,c,d) // 0 1 0 1
与 C 语言和 Objective-C 不同,Swift 的赋值操作并不返回任何值 所以不能用作if语句判断
if a = b{}

  • 算术运算符
包括 + - * / 四则运算
Swift默认情况下不允许在数值运算中出现溢出情况 //溢出运算有溢出运算符 这里暂不作说明
+ 与Java类似 也可做字符串的拼接[两个字符串]
let str1 = "Hello "
let str2 = "World"
print(str1 + str2)//Hello World
数字与字符串拼接使用 \() 不能使用 + 
求余运算(取模)%
结果的正负与被模数相同 比如9 % 4 = 9 % -4 = 1 ||| -9 % 4 = -9 % -4 = -1
一元符号运算符[一元负号符 - 写在操作数之前,中间没有空格]
let three = 3
let fthree = -three
let ffthree = -fthree
print(three) //3
print(fthree) //-3
print(ffthree)//3
print(three == ffthree) //true
一元正号运算符 【并没有什么卵用】(不做任何改变返回被操作数)

  • 组合赋值运算符
 大概包括 += -= *= /= %= ... a []= b 等同于 a = a + b

  • 比较运算符[返回布尔值]多用于 if条件语句
• 等于 a == b 
• 不等于  a != b  
• 大于  a > b  
• 小于  a < b  
• 大于等于  a >= b  
• 小于等于  a <= b 
Swift 也提供恒等  ===  和不恒等  !==  这两个比较符来判断两个对象是否引用同一个对象实例
不能直接做两个变量值的判断操作【-】
包含布尔值的元组不能比较 
但是如果是包含Int String的元组可以被比较  //??
比较元组大小会按照从左到右、逐值比较的方式,直到发现有两个值不等时停止
如果所有的值都相等,那么这一对元组我们就称它们是相等的
(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 : 答案 2
三目运算符是以下代码的缩写形式:
if question {
answer1
} else {
answer2
}
三目运算提供有效率且便捷的方式来表达二选一的选择
需要注意的事,过度使用三目运算符会使简洁的代码变的难懂
应避免在一个组合语句中使用多个三目运算符。

  • 空合运算符
空合运算符( a ?? b )将对可选类型a 进行空判断,如果a 包含一个值就进行解封,否则就返回一个默认值b
表达式a 必须是 Optional 类型
默认值b 的类型必须要和a 存储值的类型保持一致
var name : String? = "Hello World"
// name = nil    //将name 赋值为nil 后打印出defaultName 的值
let defaultName :String  = "Yes Name is nil"
print(name ?? defaultName) //name 不为空时候 打印name的值
空合运算符是对以下代码的简短表达方法:
a != nil ? a! : b  //如果a 不为空 解封 a 否则使用 b
注意: 如果a 为非空值( non-nil ),那么值b 将不会被计算 这也就是所谓的短路求值
-- 这里需要注意的是,a ?? b a为需要判断是否为空的值,b是 a为空时候使用的值 --

  • 区间运算符
闭区间运算符
闭区间运算符( a...b )定义一个包含从a 到b (包括a 和b )的所有值的区间
半开区间运算符( a..<b )定义一个从a 到b 但不包括b 的区间  之所以称为半开区间,是因为该区间包含第一个值而不包括最后的值
半开区间的实用性在于当你使用一个从 0 开始的列表(如数组)时,非常方便地从0数到列表的长度

  • 逻辑运算符
• 逻辑非( !a )
• 逻辑与( a && b )
• 逻辑或( a || b )
逻辑与 第一个为false 直接跳过第二个条件  
逻辑或 第一个为true 同上
使用括号来明确优先级

上一篇内容
0 0
原创粉丝点击