日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

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

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

【主要內容】

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“微信公眾賬號,芒果會常常為大家分享好的技術文章:




生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品精品视频一区二区三区 | 日韩精品视频在线播放 | 中文字幕av一区二区 | 日韩视频一区 | 欧美一二 | 在线亚洲+欧美+日本专区 | 午夜三级在线观看 | 在线观看毛片网站 | 久久久久久国产精品久久 | 日韩精品免费一区二区夜夜嗨 | 日韩欧美在线视频 | 国产一区精品在线 | 波多野结衣av电影 | av簧片| 欧美精品在线免费观看 | 99热一区| 国产伦精品一区二区三区 | 欧美精品一区在线观看 | 色婷婷成人影院 | 男男做性免费视频网 | 91视频国产免费 | 综合av网 | 亚洲国产一区二区在线 | 国产精品二区一区二区aⅴ污介绍 | 国产四区 | 日韩av一区在线 | 黄色大片网 | 亚洲电影中文字幕 | 国产精品一区不卡 | 加勒比不卡视频 | av中文字幕一区二区 | 日本久久精品 | 国产美女视频 | 一区二区三区四区在线视频 | 中文字幕第一页在线 | 国产精品久久久久久久久久东京 | 久久免费视频在线 | 黄色国产视频 | 精品国产1区 | 欧美成人免费视频 | 这里只有精品在线 |