整數(shù)
Int的長(zhǎng)度為當(dāng)前平臺(tái)的原生字長(zhǎng)相同,可以用Int.max,Int.min來取其最大值和最小值
64位的長(zhǎng)度范圍是: max : 9223372036854775807, min : -9223372036854775808
Int8長(zhǎng)度范圍:max : 127, min : -128
Int16長(zhǎng)度范圍max : 32767, min : -32768
Int32長(zhǎng)度范圍 max : 2147483647, min : -2147483648
Int64長(zhǎng)度范圍 max : 9223372036854775807, min : -9223372036854775808
UInt無符號(hào)整數(shù),長(zhǎng)度業(yè)余當(dāng)前平臺(tái)原生字節(jié)長(zhǎng)相同
64位長(zhǎng)度范圍是: max : 18446744073709551615, min : 0
UInt8長(zhǎng)度范圍:max : 255, min : 0
UInt16長(zhǎng)度范圍max : 65535, min : 0
UInt32長(zhǎng)度范圍 max : 4294967295, min : 0
UInt64長(zhǎng)度范圍 max : 18446744073709551615, min : 0
浮點(diǎn)數(shù)
Float是32位的浮點(diǎn)數(shù),小數(shù)點(diǎn)后6位,也可以寫作Float32.
Double是64位的浮點(diǎn)數(shù),小數(shù)后15位,寫可以寫作Float64.
進(jìn)制
十進(jìn)制:無前綴.
二進(jìn)制:0b.
八進(jìn)制:0o
十六進(jìn)制:0x
布爾值
類型: Bool, true為真, false為假
字符Character
只有指定聲明的變量與常量才會(huì)可以指定為 Character型,而類型推測(cè)會(huì)一直是 String和 NSString
String與NSString
Swift的String是一個(gè)值類型,是一個(gè)結(jié)構(gòu)體,而NSString是一個(gè)類,創(chuàng)建出來的是一個(gè)對(duì)象,有本質(zhì)的不同.
計(jì)算字符的數(shù)量
字符串.characters.count得到的是Unicode的數(shù)量
轉(zhuǎn)義字符
轉(zhuǎn)義字符用\字符來表示特定的含義,如\n是換行.
\n換行
\0空字符
\\斜線
\' 單引號(hào)
\" 雙引號(hào)
\r回車符
\t水平制表符
\xnn 單字節(jié)Unicode 二位十六進(jìn)制數(shù)
\unnnn 雙字節(jié)Unicode 四位十六進(jìn)制數(shù)
\Unnnnnnnn 四字節(jié)Unicode 八位十六進(jìn)制數(shù)
元祖
元祖(tuples)簡(jiǎn)單來講就是把多個(gè)值放到一個(gè)集合中組成復(fù)合值,這個(gè)集合里可以有多種類型
// 三種寫法之一
let dog = ("小白",18);
// 三種寫法之二
let (dogName,dogAge) = ("大黃",2)
// 三種寫法之三
let dog2 = (name:"旺財(cái)",age:3)
//打印
print(dog)
print("\(dogName)年齡\(dogAge)")
print("\(dog2.name)年齡\(dog2.age)")
類型轉(zhuǎn)換
類型轉(zhuǎn)換 由構(gòu)造器來控制如 :
extension Int64 {
public init(_ v: UInt8)
public init(_ v: Int8)
public init(_ v: UInt16)
public init(_ v: Int16)
public init(_ v: UInt32)
public init(_ v: Int32)
public init(_ v: UInt64)
public init(_ v: UInt)
public init(_ v: Int)
/// Construct a `Int64` having the same memory representation as
/// the `UInt64` `bitPattern`. No range or overflow checking
/// occurs, and the resulting `Int64` may not have the same numeric
/// value as `bitPattern`--it is only guaranteed to use the same
/// pattern of bits.
public init(bitPattern: UInt64)
}
使用:Int64( 轉(zhuǎn)換的變量或者常量 )
類型別名:
typealias關(guān)鍵字來定義別名,列子:
typealias Myview = UIView;
可選(optionals):
? 表示是一個(gè)可選值 let name: String ? 而!表示明確知道這個(gè)值不是一個(gè)空值name!,請(qǐng)?jiān)偈褂?code>!之前確定有值不然會(huì)程序會(huì)出錯(cuò).
斷言
assert關(guān)鍵字,這個(gè)關(guān)鍵字可以在調(diào)試的時(shí)候指定符合條件的情況下中斷程序的執(zhí)行,并且可以用assert(條件表達(dá)式,調(diào)試語句)的形式來執(zhí)行Log信息
"_"符號(hào)
如果你聲明的變量值沒有在程序中使用往往Xcode會(huì)提示你的變量名稱變?yōu)?code>_省略的意思,在元祖中也可以let (dogName,_) = ("大黃",2)來省略不需要的值.
"hashValue"
可以得到對(duì)應(yīng)的hash值,用法3.hashValue在swift中大部分對(duì)象,結(jié)構(gòu)體枚舉值,都可以點(diǎn)出hashValue甚至可以view.hashValue.
"is"
左邊 is 右邊 : 左邊是否是右邊的實(shí)例對(duì)象或者是右邊子類的實(shí)例對(duì)象.返回的是一個(gè)BOOL值
運(yùn)算符
賦值運(yùn)算符
= 區(qū)別于oc的是 if var obj = 3 在oc中可以 oc不是0就是真 不是nil 也是真但是swift不行if后必須是一個(gè)條件表達(dá)式
數(shù)值運(yùn)算符
+,-,*,/,%基本和OC一樣但是%這個(gè)運(yùn)算符可以計(jì)算小數(shù)
一元正負(fù)運(yùn)算符
一元運(yùn)算符的正負(fù)號(hào)+ , -代表正數(shù) 負(fù)數(shù).
自增自減運(yùn)算符,復(fù)合運(yùn)算符
自增自減運(yùn)算符++,-- 復(fù)合運(yùn)算符 +=,-=
注: +=不止可以用于數(shù)值,也可以用于拼接字符串和添加數(shù)組元素
比較運(yùn)算符
==,!=,>,<,>=,<= 為比較運(yùn)算符,與OC基本一致
另外加入的是 === ,!== 來判斷2個(gè)指針變量是否引用一個(gè)內(nèi)存地址.
三元運(yùn)算符
格式: 條件表達(dá)式 ? 條件1 : 條件2 , 例子a > b ? a:b;
邏輯運(yùn)算符
!, &&,||,邏輯運(yùn)算符也與OC基本一致
區(qū)間運(yùn)算符
... 區(qū)間運(yùn)算符,包含了在左右2端所有的數(shù), 如3...5 那么就包含 3,4,5 3個(gè)數(shù)字.
.. 半?yún)^(qū)間,相比全區(qū)間只少了最后1個(gè)數(shù)字如上面例子3..5只包含了3,42個(gè)數(shù)字.
位運(yùn)算符
~ 按位取反運(yùn)算符
&按位與運(yùn)算符
|按位或運(yùn)算符
^按位異或運(yùn)算符
<< >> 左移右移運(yùn)算符
溢出運(yùn)算符
&+ &- &* &/ &% 在值的取值范圍超出后做溢出處理
運(yùn)算符函數(shù)
關(guān)鍵字 func + (形參: 形參類型, 形參,形參類型 )->返回值類型
字符型表達(dá)式
__FUNCTION__打印出所在的函數(shù)名 String型
__FILE__ 打印出在哪個(gè)文件中 String型
__LINE__ 打印出所在的行數(shù) Int型
__COLUMN__打印出所在的列數(shù) Int 型