1. Arithmetic Operators(算术运算符)
Swift拥有大量的运算符号,像+
-
。
let a = 1
let b = 2
let total = a + b
为什么Swift无法将Double转为Int?
Double Float Int有很多常用的表示数字的类型,如Double和Int,Double和Int占用了相同的内存来存储数字,Int只能存整数,而Double可以存小数点后的值。
因此,将Double填加到Int是不安全的,Int会丢失小数。
那么将Int转为Double呢???
尽管Double使用相同的内存来存储Int,但是存储数据方式有点模糊,较小的数字有很高的的精度,但是较大数字时,精度越来越低,有些比较大的数字Double甚至无法保存。
let value1: Double = 90000000000000001
let value2: Int = 90000000000000001
Swift会警告value1 不能完全存储,会变为90000000000000000。
而value2不会,因为该数字可以准确存储,
整数失去存储分数值的能力,却获得存储精确值的能力。
即使你使用安全数字,Swift的设计也不允许意外情况的发生,所以Swift拒绝在各种数字类型间自动转换。
函数-是否被均分
let number = 465
let isMultiple = number.isMultiple(of: 7)
2.Operator overloading(运算符重载)
Swift支持运算符重载。
let fakers = "Fakers gonna "
let action = fakers + "fake"
+
连接字符串。
let firstHalf = ["John", "Paul"]
let secondHalf = ["George", "Ringo"]
let beatles = firstHalf + secondHalf
+
连接数组。
Swift是类型安全语言,意味不会让你混合类型。
Swift为什么需要运算符重载?
Swift可以使用
+
来连接字符串等其它,但是这不代表在任何位置都可以使用运算符。
你可以创建自己的自定义运算符,甚至可以修改现有的运算符。
3.Compound assignment operators复合赋值运算符
将运算符和赋值运算符结合在一起。
var score = 95
score -= 5
4.Comparison operators 比较运算符
==
!=
<
<=
Swift5.3中的枚举比较运算
enum Sizes: Comparable {
case small
case medium
case large
}
let first = Sizes.small
let second = Sizes.large
print(first < second)
5.Conditions条件
if
else
eles if
使用else 可以使代码更短,更易于阅读。
6.Combining conditions条件判断
&&
和, ||
或。
在多条件检查时,尽量自己插入括号来表明我们的意思
7.The ternary operator三元运算符
三元运算符使我们在两个结果中选择,有些人依赖三元运算符,它使我们代码变短,有些人远离它,因为它更难阅读。
为了代码更易阅读,尽可能不用三元运算符。
8.Switch statementsSwitch语法
多个条件时, 应该使用switch case
,使用这种方法,你只需编写一次条件。
通常Swift只会在一种情况下运行代码,fallthrough
关键字可以继续执行下一种情况。
switch weather {
case "rain":
print("Bring an umbrella")
case "snow":
print("Wrap up warm")
case "sunny":
print("Wear sunscreen")
fallthrough
default:
print("Enjoy your day!")
}
什么时候应该使用switch而不是if?
1.swift要求switch语句是详尽无遗的,这意味着必须case每个可能的值,或必须有一个default情况,if else 情况则并非如此。
2.当使用switch检查多个结果时,该值仅读取一次,而if被读取多次,如果这时候使用函数调用,如果一些函数调用速度很慢,那这变得很重要。
3.Switch允许使用高级模式匹配if。
9.Range operators范围运算符
..<
半开范围运算符,不包含最终值 ...
封闭运算符包括最终值
switch配合范围运算符很有用。
let score = 85
switch score {
case 0..<50:
print("You failed badly.")
case 50..<85:
print("You did OK.")
default:
print("You did great!")
}
单边范围运算
let names = ["Piper", "Alex", "Suzanne", "Gloria"]
print(names[1...])
10.总结
1.Swift具有算术和比较运算符。
2.算术运算符有多种变体,+=
,-=
等。
3.可以使用if
,else
,else if
条件判断。
4.Swift具有三元运算符,该运算符将校验与正确或错误的代码块结合。
5.如果有多个条件,使用switch
更容易。
6.你可以使用范围运算..<
,...
。
网友评论