多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 芒果iOS開發之Swift教程02-Swift基本數據類型

芒果iOS開發之Swift教程02-Swift基本數據類型

來源:程序員人生   發布時間:2016-12-04 14:32:08 閱讀次數:3967次

【主要內容】

1.整型

2.浮點型

3.類型安全和類型推斷

4.數值型字面量

5.數值類型轉換

6. 類型別名


1、整型

1.1 整數和整型

編程語言中的整型是用來表示我們自然界中的整數。先來補習1下小學的知識,整數的概念:正整數、零、負整數統稱為整數。

依照有沒有符號可以分為兩種:1.有符號整數(正整數、零、負整數)2.無符號整數(正整數和零)

Swift提供了8,16,32和64位的有符號和無符號的整數類型,比如:8位無符號整數類型是UInt8,32位有符號整數類型Int32


1.2 整型表示的范圍

Swift中提供了minmax屬性來訪問不同整數類型的最小值和最大值,比如8位無符號/有符號整型表示的最大值最小值,如圖:



1.3 Int類型

1般寫代碼的時候不需要專門制定整數類型的長度,Swift還提供了1個特殊的整數類型:Int,Int類型的長度取決于當前平臺的系統位數:

在32位平臺上Int類型就是32位,和Int32長度相同。

在64位平臺上Int類型就是64位,和Int64長度相同。


1.4 UInt類型

UInt類型和Int類型1樣,它的長度取決于當前平臺的系統位數。

注意:

開發中盡可能不要使用UInt類型,最好使用Int,即便你要貯存的值就是非負數。可以提高代碼的復用性,避免不同類型數字之間的轉換,并且匹配數字的類型推斷。


2、浮點型

浮點數就是帶有小數點的數字,比如常見的:3.14,0.618。Swift中提供了兩種浮點數類型:

Float 表示32位浮點數。精度要求不高的話使用此類型。

Double表示64位浮點數。當需要貯存很大或很高精度的浮點數的時候才使用此類型。

注意:

Double的精度可以到達小數點后最少15位數字,而Float只有小數點后6位。1般來講Float類型足夠用。


3、類型安全和類型推斷

Swift是1種類型安全(type safe)的語言。類型安全的語言可讓你清除的知道代碼要處理的值的類型。如果你的代碼需要傳遞的參數是String類型,那末你絕對不可能不謹慎船進入1個非String類型。

由于Swift是類型安全的,所以它會在編譯你的代碼時進行類型檢查(typy checks),并把不匹配的類型標記為毛病,這樣可讓你盡早的發現問題并修復。

當你要處理不同類型的值時,類型檢查可以幫你避免毛病。但是你沒必要每次聲明常量、變量的時候都顯示制定類型,如果沒有制定類型,Swift會使用類型推斷(type inference)幫你選擇適合的類型。原理就是檢查你的賦值便可。

雖然有類型推斷,但是Swift很少需要自己顯示聲明類型,這些工作交給編譯器去做就能夠了。

 例如:

聲明1個沒有標注類型的常量money,賦值998,Swift可以推斷出常量的類型是Int,從下圖控制臺的信息可以得到論證:


如果你給變量、常量賦值了1個浮點類型的值,Swift會默許推斷為Double類型,如圖:



4、數值型字面量

1個整數的字面量可以被寫成以下幾種情勢:

1個10進制數,沒有前綴

1個2進制數,前綴是0b

1個8進制數,前綴是0o

1個106進制數,前綴是0x

比如:



浮點型字面量可以是10進制(沒有前綴)或106進制(前綴是0x)。小數點兩邊必須有最少1個10進制數字(或是106進制的數字)。10進制浮點數也能夠有1個可選的指數(exponent),通過大寫或小寫的e來制定,106進制浮點型數必須有1個指數,通過大寫或小寫的p來指定。

如果1個10進制數的指數為exp,那這個數相當于基數和10^exp的乘積:

1.25e2 表示1.25 × 10^2,等于125.0。

1.25e⑵表示1.25×10^⑵,等于0.0125。

如果1個106機制數的指數為exp,那這個數相當于基數和的2^exp的乘積:

0xFp2表示15×2^2,等于60.0.

0xFp⑵表示15×2^⑵,等于3.75。

下面的這些浮點字面量都等于10進制的12.1875:

let decimalDouble = 12.1875 let exponentDouble = 1.21875e1 let hexadecimalDouble = 0xC.3p0


數值類字面量可以包括額外的格式來增強可讀性。整數和浮點數都可以添加額外的零并且包括下劃線,其實不會影響字面量:

let paddedDouble = 000123.456 let oneMillion = 1_000_000 let justOverOneMillion = 1_000_000.000_000_1

5、數值型類型轉換

在開發的時候,如果沒有明確說1定要聲明無符號整型(要求優化性能、減少內存占用等),請使用系統默許的Int類型。由于系統默許整數類型的字面量默許的類型推斷也是Int類型。

5.1 整數之間的轉換

不同的整數類型存儲的范圍不同,可以通過max和min屬性得到。Int類型可以存儲的數值范圍:⑴28~127,UInt類型存儲的數值范圍:0~255。如果超越了這個范圍系統在編譯的時候就會報錯:

上邊這兩個毛病就是說:你存儲的值溢出了當前這個類型所表示的范圍。

如果想要兩個不同整數類型的值進行操作的時候,必須要轉化成相同的類型:

let value1: UInt16 = 2_000 let value2: UInt8 = 1 let value3 = value1 + UInt16(value2)

value1是UInt16類型,value2是UInt8類型,需要先用SomeType(ofInitialValue)方法將value2轉化為UInt16類型的數再進行運算。

5.2整數和浮點數轉換

整數和浮點數的轉換必須顯式指定類型:

let integerValue = 7 let fValue = 3.14 let fNumber = Double(integerValue) + fValue print("fNumber = \(fNumber)")

常量integerValue被轉換成了Double類型,這樣加號兩邊的數類型相同就能夠進行運算。

浮點類型一樣可以轉換成整數類型:

let integerNum = Int(fValue) print(integerNum)

當浮點類型轉換為整數類型的時候,浮點類型會丟失精度,只保存浮點類型的整數位。上邊integerNum輸出的值為3。

注意:

數字類型的常量或變量進行運算,不同于數字字面量之間進行運算。數字字面量可以直接進行運算,比如3 + 0.1415,由于數字字面量本身沒有肯定的類型,但是數字類型常量、變量是會被編譯器推斷出具體類型的,只有類型相同才能進行運算。


6、類型別名

類型別名(type aliases)就是給現有的類型定義1個新的名字。跟OC里邊的typedef是類似。在Swift中你可使用typealias關鍵字來定義類型別名。平常在開發的時候偶爾也會用到但是不多。類型別名在蘋果的Api里邊大量的出現,特別是在1些地圖類、音視頻類等等的Api里邊,常常會給現有類型起1個更成心義的別名。

比如:在GCD里邊,如果想要某個線程延遲幾秒履行,你得先定義1個延遲時間dispatch_time_t ,你點擊進去查看Api就會發現其實它是UInt64類型:


下邊自己定義1個類型別名:

typealias requestTimeOut = Int var time:requestTimeOut = 10 time = 7 print(time) print(requestTimeOut.max)

上邊的定義了1個要求超時時間的類型別名,那末之前需要用到Int的地方就能夠直代替換成requestTimeOut。


歡迎大家關注”芒果iOS“微信公眾賬號,芒果會常常為大家分享好的技術文章:




生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久亚洲在线 | 日本一区二区三区四区在线观看 | 公开免费视频 | 国产在线观看一区二区三区 | 欧美成免费 | 最新中文 | 欧美日韩中文一区 | 国产精品福利片免费看 | 欧美最猛黑人xxxxx猛交 | 亚洲欧美日韩国产综合久 | 亚洲国产日韩欧美 | 日本免费人做人一区在线观看 | 成人亚洲视频在线观看 | 波多野结衣中文字 | 久久精品国产亚洲精品 | 91情国产l精品国产亚洲区 | 性欧美video高清熟睡 | 国产xxxxx| 自拍视频网站 | 亚洲欧美综合另类 | 国产日韩欧美第一页 | 欧美成人性生活视频 | 亚洲日韩中文字幕天堂不卡 | 久久亚洲欧美成人精品 | 久热这里只有 | 亚洲日本一区二区三区 | 日韩一级欧美一级一级国产 | 九九这里有精品 | 性猛交╳xxx乱大交 性猛交xxxxx按摩 | 欧美精品黑人性xxxx | 日本japanese18日本护士xxxx | 最近中文字幕在线 | 欧美一级视频在线观看 | 欧美一区二区在线免费观看 | 国产精品2020观看久久 | 免费一级国产生活片 | 中文字幕天堂在线 | 一级毛片在线免费看 | 免费aⅴ网站 | 日韩中文字幕在线观看视频 | 日韩视频高清免费看 |