swift筆記:數(shù)據(jù)類型補(bǔ)充,其他補(bǔ)充

整數(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ì)一直是 StringNSString

String與NSString


SwiftString是一個(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 4,194評(píng)論 1 10
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,564評(píng)論 19 139
  • 今天在看知乎的時(shí)候,看到一對(duì)喜歡出游時(shí)錄制旅行視頻的情侶。倆人背著十斤的包,拖著三腳架每天幾個(gè)小時(shí)游走,只是為了最...
    月月大王閱讀 1,634評(píng)論 6 7
  • 關(guān)于作者 查爾斯·曼恩是《大西洋月刊》《科學(xué)》和《連線》等知名刊物的撰稿人,曾三次進(jìn)入美國(guó)國(guó)家雜志獎(jiǎng)決賽的作者,被...
    龍少俠linux閱讀 1,830評(píng)論 0 0
  • 熟人G君自大學(xué)畢業(yè)后就一直眼高于頂,對(duì)工作挑三揀四,幾年間換工作比換內(nèi)褲還勤快,卻終究一事難成。 一日,G君在外...
    鐵甕城主閱讀 333評(píng)論 13 0

友情鏈接更多精彩內(nèi)容