亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Swift語言指南(五)--數字字面量和數字類型轉換

2019-11-14 20:25:13
字體:
來源:轉載
供稿:網友

 

數字字面量

整數字面量寫法如下:

· 十進制數,無前綴

· 二進制數,以 0b 為前綴

· 八進制數,以 0o 為前綴

· 十六進制數,以 0x 為前綴

下面所有整數字面量值為十進制的 17 :

1 let decimalInteger = 172 let binaryInteger = 0b10001       // 17 二進制標識3 let octalInteger = 0o21           // 17 八進制標識4 let hexadecimalInteger = 0x11     // 17 十六進制標識

浮點數字面量可以是二進制(無前綴)或十六進制(以 0x 為前綴),小數點的兩側必須有各有一個數字(或十六進制數字)。他們都可以擁有一個可選的指數冪,十進制小數標記為大寫或小寫的 ,十六進制標記為大寫或小寫的 。

指數冪為 exp 的十進制數字,它的基數將乘以 10exp 

· 1.25e2 表示 1.25 × 102, 或 125.0.
· 1.25e-2 表示 1.25 × 10-2, 或 0.0125.

指數冪為 exp 的十六進制數字,它的基數將乘以 2exp

· 0xFp2 表示 15 × 22,  60.0.
· 0xFp-2 表示 15 × 2-2,  3.75.

下面所有浮點數的字面值為十進制值 12.1875:

1 let decimalDouble = 12.18752 let exponentDouble = 1.21875e13 let hexadecimalDouble = 0xC.3p0

數字字面量可以包含其它的格式以便于閱讀。整數與浮點數均可以添加多余的零或下劃線以提高可讀性。兩種格式均不會影響字面量的實際值:

1 let paddedDouble = 000123.4562 let oneMillion = 1_000_0003 let justOverOneMillion = 1_000_000.000_000_1

 

數字類型轉換

代碼中應使用 Int 類型作為所有常規用途的整數常量及變量的類型,即使它們的確為非負數。日常使用中,使用默認的整數類型意味著這些整型常量與變量均可即時互相參與運算,并可與根據整數字面值推斷出的類型相匹配。

僅當手中的任務必須使用其他整數類型時才用它們,如外部數據源提供寬度明確的數據,或為了性能、內存占用等其他必需優化的情況考慮。在這些情況下使用寬度明確的類型有助于發現偶然的數值溢出和捕捉使用時數據的原始信息。

 

整數轉換

不同數字類型所能存儲的值域范圍是不同的。一個 Int8 常量或變量能存儲 -128127 之間的數字,而一個 UInt8 常量或變量能存儲 0255 的數字。無法存進一個整型的常量或變量的數字編譯時會報錯:

1 let cannotBeNegative: UInt8 = -12 // UInt8 不能保存負數, 所以這里會報錯的
3 let tooBig: Int8 = Int8.max + 14 // Int8 不能保存超過其最大值范圍的數字,5 // 所以這里也會報錯的

由于不同數據類型能存儲的值域不同,在進行數據轉換時需要具體問題具體對待。這種實際選擇的過程可避免隱式轉換的問題,還能在代碼中強化類型轉換的意圖。

要將一個數字的類型轉換為另一種,應先把現有值初始化一個所需類型的新的數字。下例中,常量 twoThousand 的類型為 UInt16,而常量 one 的類型為 UInt8。它們無法直接相加,因為類型不同。因此,本例將調用 UInt16(one) 新建一個 UInt16 數,并將 one 的數值初始化,用初始化的新值(新值為 UInt16 )取代原始值(原始值為 UInt8 ):

1 let twoThousand: UInt16 = 2_0002 let one: UInt8 = 13 let twoThousandAndOne = twoThousand + UInt16(one)//將常量one初始化為UInt16

現在加號兩側均為 UInt16 類型,因此相加合法。輸出的常量 (twoThousandAndOne) 的推斷類型為 UInt16,因為其為兩個 UInt16 值之和。

某些類型(初始值) 是調用 Swift 類型構造函數并傳遞初始值的默認方法。幕后運作情況是,UInt16 有一個接受 UInt8 值的構造函數,因此該構造函數會被用于根據現有 UInt8 創建新的 UInt16。不過,在這里并不能傳入任意類型——只能傳入 UInt16 提供有構造函數的類型。擴展現有類型使其提供接受新類型(包括自己定義的類型)的構造函數的方法請見 擴展 (后面會譯到)一章。

 

整數和浮點數間的轉換

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

1 let three = 32 let pointOneFourOneFiveNine = 0.141593 let pi = Double(three) + pointOneFourOneFiveNine4 // pi 等于 3.14159, 故而推斷類型為Double

在上例中,常量 three 的值被用來創建一個新的 Double 類型,以便加號兩側的類型保持一致,如果類型沒有轉換,是不允許相加的。

反過來,浮點數到整數的轉換同樣可行,整數類型可以用 DoubleFloat 值初始化:

1 let integerPi = Int(pi)2 // integerPi 等于 3, 類型推斷為Int

這樣用浮點數初始化為新的整數時,浮點數值總會被截斷。即, 4.75 變為 4, -3.9 變為 -3。

注意:

數字常量或變量的結合規則與數字字面量的結合規則不同。字面量 3 可以直接與字面量 0.14159 相加,因為數字字面量沒有明確指定類型,它們自身也沒有明確的類型。其類型僅當被編譯器求值時才推斷得出。

 

謝謝,Swifter-QQ群:362232993,同好者進~ 

Fork:https://github.com/Joejo/Swift-lesson-for-chinese

 

 

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频在线播放| 97超碰国产精品女人人人爽| 91免费人成网站在线观看18| 国产精品日韩精品| www.亚洲男人天堂| 91国产高清在线| 欧美黄色免费网站| 国产91成人video| 国产精品久久久久久久久免费| 欧美成人h版在线观看| 国产精品偷伦视频免费观看国产| 亚洲性夜色噜噜噜7777| 欧美色xxxx| 国产精品7m视频| 欧美成人精品在线观看| 亚洲欧美国内爽妇网| 国产日韩欧美视频| 久久亚洲一区二区三区四区五区高| 亚洲人线精品午夜| 国产亚洲欧美另类中文| 日韩av影片在线观看| 欧美与黑人午夜性猛交久久久| 亚洲精品色婷婷福利天堂| 最近中文字幕日韩精品| 久久精品小视频| 亚洲高清免费观看高清完整版| 久久精品久久久久| 久久久在线观看| 日韩精品中文字幕在线观看| 久久久这里只有精品视频| 成人美女免费网站视频| 精品亚洲一区二区三区| 国产午夜精品一区二区三区| 色综合视频网站| 中文字幕日韩在线视频| 亚洲第一天堂无码专区| 亚洲欧美国产精品专区久久| 黑人巨大精品欧美一区二区免费| 成人精品一区二区三区电影免费| 亚洲欧美第一页| 日韩av高清不卡| 亚洲最大激情中文字幕| 久久男人的天堂| 国产不卡av在线| 精品久久久精品| 亚洲欧美国产一本综合首页| 国产视频精品一区二区三区| 欧美一区二区三区……| 91欧美日韩一区| 国产高清在线不卡| 久久久久久久一区二区| 欧美视频在线观看免费网址| 777777777亚洲妇女| 国产精品www网站| 九九热最新视频//这里只有精品| 国产精品欧美亚洲777777| 国产欧美精品日韩精品| 亚洲日本欧美日韩高观看| 久久久久国产一区二区三区| 中文字幕一区电影| 欧美日韩国产色视频| 中文字幕在线看视频国产欧美在线看完整| 国产69精品久久久久99| 亚洲精品一区中文字幕乱码| 在线播放国产一区二区三区| 久久久女人电视剧免费播放下载| 日韩欧美视频一区二区三区| 欧美丰满老妇厨房牲生活| 亚洲在线视频观看| 久久影院免费观看| 中文字幕精品一区二区精品| 国产深夜精品福利| 久久亚洲精品小早川怜子66| 国产91亚洲精品| 国语自产精品视频在线看一大j8| 日韩av不卡电影| 色妞欧美日韩在线| 国产精品久久一区| www.亚洲人.com| 清纯唯美亚洲激情| 久久视频免费观看| 欧美激情精品久久久久久| 午夜精品www| 久久视频中文字幕| 成人欧美一区二区三区在线湿哒哒| 日韩亚洲综合在线| 欧美最顶级丰满的aⅴ艳星| 亚洲最大成人免费视频| 精品福利在线观看| 欧美色道久久88综合亚洲精品| 久久色免费在线视频| 国产91免费观看| 亚洲第一网中文字幕| 午夜精品福利视频| 久久精品国产亚洲7777| 国产欧美日韩中文字幕在线| 精品久久久久久久久久久久久| 日韩欧美aaa| 亚洲大胆人体视频| 欧美一区二区三区图| 亚洲2020天天堂在线观看| 国产欧美久久一区二区| 亚洲第一色中文字幕| 欧美精品久久久久久久| 91亚洲精品在线| 中文字幕欧美日韩va免费视频| 欧美性生活大片免费观看网址| 日本一区二区三区四区视频| 中文字幕av一区中文字幕天堂| 欧美激情中文字幕在线| 在线观看成人黄色| 欧美理论电影在线观看| 91精品免费视频| 精品中文字幕视频| 欧美成人h版在线观看| 中文字幕一区电影| 国产成人精品日本亚洲| 久久在精品线影院精品国产| 自拍偷拍亚洲一区| 国产成人精品电影| 国产精品免费在线免费| 亚洲影院污污.| 国产精品爽爽爽爽爽爽在线观看| 日韩av在线影视| 久久免费视频网| 清纯唯美亚洲综合| 成人444kkkk在线观看| 一本一本久久a久久精品综合小说| 国产噜噜噜噜噜久久久久久久久| 91av在线国产| 国模视频一区二区三区| **欧美日韩vr在线| 亚洲人成电影网站色xx| 国产精品v片在线观看不卡| 国产精品69久久| 91免费国产视频| 菠萝蜜影院一区二区免费| 国产精品欧美在线| 色妞欧美日韩在线| 国产亚洲日本欧美韩国| 日韩亚洲欧美中文高清在线| 日韩国产欧美精品一区二区三区| 人人澡人人澡人人看欧美| 久久久综合免费视频| 亚洲国产美女久久久久| 色阁综合伊人av| 91在线免费视频| 日韩国产欧美精品一区二区三区| 国产欧美精品在线播放| 38少妇精品导航| 91精品中文在线| 自拍偷拍亚洲在线| 岛国视频午夜一区免费在线观看| 精品亚洲一区二区三区四区五区| 国产亚洲成精品久久| 日韩精品在线观看网站| 亚洲综合色激情五月| 日韩成人激情影院| 国产成人拍精品视频午夜网站| 91精品国产91| 国产91九色视频| 久久久精品日本| 国产精品中文字幕在线| 国产亚洲欧美aaaa|