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