三
.溢位運算子
1. 預設情況下,
swift
不允許整型變數被賦予乙個超出表示範圍的數,否則會報錯。
2. swift
中,如果希望資料溢位時
swift
程式只是對溢位的資料進行截斷,而不是報錯,則可以使用
swift
提供的溢位運算子。
3. swift為整型
計算提供了5個以
&開頭的溢位運算子。
&+:溢位加
&-:溢位減
&*:溢位乘
&/:溢位除
&%:溢位求餘
舉個栗子:
var a : int16 = 65535;
a = a * 10; //
此時,程式不會報錯,執行的結果將會把左邊溢位的部分拋棄
4. 值的上溢:超出的型別表示的最大範圍,即真實值的左邊被截斷拋棄了。
5. 值的下溢:超出了型別表示的最小防偽,即真實值的右邊被截斷拋棄了。
6. 除零溢位,舉個栗子:
let x = 20
let y = x / 0 //
報錯let z = x % 0 //
報錯如果寫為:
let y = x &/ 0; //
不會報錯,得到
0let z = x &% 0; //
不會報錯,得到0四
.位運算子
1.位運算子通常在圖形、影象處理和建立裝置驅動等底層開發中使用的比較多。使用位運算子可以直接運算元據的原始
bit位。尤其是在使用自定義的協議進行通訊時,使用位運算對原始資料進行編碼和解碼也非常有效。
2. 同其他的程式語言,
swift
中的位運算子有6個:
&:按位與
|:按位或
^:按位異或
~:按位取反
<<:
左位移運算
>>:
右位移運算五.
擴充套件後的賦值運算子+=,
-=,*=,
/=,%=
,&=,|=
,^=,<<=, >>=六.
範圍運算子
1. swift
提供了兩個範圍運算子,他們可以非常方便地構建一種資料結構,這種資料結構包含了特定範圍內的所有值。
2. 閉範圍運算子:
ā...b
用於定義乙個從a~
b(包括a、
b邊界值)的所有值的範圍。並且對於閉範圍運算子而言,a不能
大於b3. 半開範圍運算子:
a..用於定義乙個從a~
b(包括
a,但是不包括
b)的所有值的範圍。同樣的,
a不能大於b。
4. 使用
for-in
遍歷的例子:
var rangle = 2...6
for num in rangle
var books = ["abc", "123", "def", "456"]
for index in 0..
可以看出,使用半開範圍運算子對遍歷陣列很方便。七.
比較運算子
>, >=, <, <=, ==, !=, ===, !==
其中:===
:恆等於,該運算子通常只用於判斷引用型別的變數,只有當兩個引用變數都引用了同乙個物件時才返回
true
,否則返回
false。!
==:不恆等於,同
===的作用相同,只是返回值恰好相反。八.
邏輯運算子:&&,
||,!,&
,|,^
九.三目運算子
——?:
十. nil
合併運算子
1. swift
提供了nil
合併運算子:
??,用法位:
a ?? b
;2.
功能是判斷可選型別變數
a是否為
nil,如果a不為
nil,程式將會返回可選型別
a所包含的實際值;如果a為
nil,則會返回預設值b。
3. 使用該運算子時要求b和
a所包含的型別一致。比如a是
int?,那麼b就是
int型別,如果a是
string
?,那麼b就是
string
型別。4
,如果??的左運算元不為
nil,那麼??右邊的操作不會被計算,也就是說??是短路運算子。
5. ??運算子的左運算元可以不是可選型別的,但是這樣的話,使用??就沒有意義了。
每天學一點Swift 泛型 一
一 泛型的作用 1.泛型是一種非常靈活的語法,泛型允許程式在函式 列舉 結構體 類中定義型別形參,這種型別形參實際代表的型別是動態改變的 程式可以等到真正使用這些函式 列舉 結構體時才為這些型別形參傳入實際的型別。而且每次使用這些函式 列舉 結構體 類時都可以為泛型的型別形參傳入不同的型別。2.例項...
每天學一點Swift 閉包 三
八 捕獲上下文中的變數和常量 1.閉包可以用訪問或修改閉包所在上下文中的變數或常量 對於常量只是訪問 這個過程被稱為捕獲。2.即使定義這些變數或常量的作用域已經不存在了,閉包也依然可以訪問或修改他們。3.swift 中最簡單的閉包形式就是巢狀函式 巢狀函式可以捕獲它所在的封閉韓式的變數 常量或引數。...
每天學一點(一)
記錄學習內容 js中對於函式的建立,在使用函式表示式和函式宣告相結合時,正確寫法為 var sum function sum a,b console.log sum 1,2 輸出3 若定義的變數和函式名稱書寫不一致,則會產生錯誤。var sum1 function sum2 a,b console....