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

首頁 > 編程 > Swift > 正文

Swift內置的數字類型及基本的轉換方法

2020-03-09 17:49:50
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Swift內置的數字類型及基本的轉換方法,是Swift入門學習中的基礎知識,需要的朋友可以參考下
 

雖然編寫任何編程語言,需要使用不同的變量來存儲各種信息。變量不過是保留的內存位置來存儲值。這意味著,當創建一個變量,在內存中會保留一些空間。

可能喜歡像存儲字符串,字符,寬字符,整數,浮點數,布爾等各種數據類型的信息。根據一個變量的數據類型,操作系統分配內存,并決定什么可以存儲保留在存儲器。

內置數據類型
Swift 為程序員提供內置以及用戶定義的種類數據類型。 以下是聲明變量使用最頻繁的基本數據類型的列表:

Int 或 UInt - 這是用于整數。更具體地可以使用Int32,Int64來定義32或64位有符號整數,其中作為UInt32或UInt64用來定義32或64位無符號整數的變量。 For example, 42 and -23.

  • Float - 這是用來表示一個32位浮點數,一般用于使用較小的小數點數字。 例如:3.14159,0.1,和 -273.158。
  • Double - 這是用來表示一個64位浮點數,用于非常大的浮點值。  例如: 3.14159, 0.1, 和 -273.158.
  • Bool - 這代表一個布爾值,真或假。
  • String - 這是有序字符集合。例如, "Hello, World!"
  • Character - 這是一個單字符字符串。例如, "C"
  • Optional - 這表示可以容納一個值或沒有任何值的變量。

有下列有關整數類型要點:

  • 在32位的平臺上,Int 大小與 Int32 的大小相同。
  • 在64位的平臺上,Int 大小與 Int64 的大小相同。
  • 在32位的平臺上,UInt 的大小與 UInt32 的大小相同。
  • 在 64 位的平臺上,UInt 的大小與 UInt64 的大小相同。
  • Int8, Int16, Int32, Int64 可以用來表示 8 Bit, 16 Bit, 32 Bit 和 64 Bit 形成有符號整數。

UInt8, UInt16, UInt32 和 UInt64 可以用來表示 8 Bit, 16 Bit, 32 Bit 和 64 Bit 形成無符號整數。
綁定值
下表顯示變量類型,需要多少內存存儲此值在存儲器中,在這種類型的變量可以存儲最大值和最小值。

Swift內置的數字類型及基本的轉換方法

類型別名
可以從現有類型使用typealias創建一個新的名稱。以下是使用簡單 typealias 的語法來定義新類型:

復制代碼代碼如下:

typealias newname = type

例如,下面告訴編譯器Feet 是 Int 的另一個名字:
復制代碼代碼如下:

typealias Feet = Int

現在,下面的聲明是完全合法的,并創建一個整型變量為 distance:
復制代碼代碼如下:

import Cocoa

 

typealias Feet = Int
var distance: Feet = 100
println(distance)


當我們使用 playground 運行上面的程序,到以下結果。

 

100

類型安全
Swift 是一種安全的語言,這意味著,如果代碼的一部分需要一個字符串, 那么不能錯誤地傳遞一個int。

由于 Swift 是類型安全的,當類型檢查時它執行編譯代碼并標志類型不匹配的錯誤。

復制代碼代碼如下:

import Cocoa

 

var varA = 42
varA = "This is hello"
println(varA)


當我們編譯上面的程序它產生以下編譯時錯誤。
復制代碼代碼如下:

Playground execution failed: error: :6:6: error: cannot assign to 'let' value 'varA'
varA = "This is hello"

類型推斷
在它編譯代碼時,類型推斷使編譯器自動推導出特定表達式的類型, 簡單地通過檢查所提供的值。Swift 采用類型推斷制定出合適的類型如下。
復制代碼代碼如下:

 import Cocoa

 

// varA is inferred to be of type Int
var varA = 42
println(varA)

// varB is inferred to be of type Double
var varB = 3.14159
println(varB)

// varC is also inferred to be of type Double
var varC = 3 + 0.14159
println(varC)


當我們使用 playground 運行上面的程序,得到以下結果。

 

423.141593.14159

Swift數字類型之間的轉換
Swift數字類型之間的轉換Swift是一種安全的語言,對于類型的檢查非常嚴格,不同類型之間不能隨便轉換。
一、整型之間的轉換
在C和Objective-C等其他語言中,整型之間有兩種轉換方法:
從小范圍數到大范圍數轉換是自動的;
從大范圍數到小范圍數需要強制類型轉換,有可能造成數據精度的丟失。
而在Swift中這兩種方法是行不通的,我們需要通過一些函數進行顯式地轉換,代碼如下:

復制代碼代碼如下:

let historyScore:UInt8 = 90

 


let englishScore:UInt16 = 130


let totalScore = historyScore + englishScore  //錯誤 ①


let totalScore = UInt16(historyScore) + englishScore   //正確 ②


let totalScore = historyScore + UInt8(englishScore)  //正確 ③

 

上述代碼聲明和初始化了兩個常量historyScore和englishScore,我們把它們相加賦值給totalScore。如果采用第①行代碼實現相加,程序就會有編譯錯誤,原因是historyScore是UInt8類型,而englishScore是UInt16類型,它們之間不能轉換。
我們有兩種轉換方法。
一種是把UInt8的historyScore轉換為UInt16類型。由于是從小范圍數轉換為大范圍數,這種轉換是安全的。代碼第②行UInt16(historyScore)就是正確的轉換方法。
另外一種是把UInt16的englishScore轉換為UInt8類型。由于是從大范圍數轉換為小范圍數,這種轉換是不安全的,如果轉換的數比較大會造成精度的丟失。代碼第③行UInt8(englishScore)是正確的轉換方法。由于本例中englishScore的值是130,這個轉換是成功的,如果把這個數修改為1300,雖然程序編譯沒有問題,但是會在控制臺中輸出異常信息,這是運行期異常。
上述代碼中,UInt16(historyScore)和UInt8(englishScore)事實上是構造器,能夠創建并初始化另外一個類型。二、整型與浮點型之間的轉換
整型與浮點型之間的轉換與整型之間的轉換類似,因此我們將上一節的示例修改如下:

復制代碼代碼如下:

let historyScore:Float = 90.6         ①

 


let englishScore:UInt16 = 130         ②


let totalScore = historyScore + englishScore  //錯誤         ③


let totalScore = historyScore + Float(englishScore)  //正確,安全    ④


let totalScore = UInt16(historyScore) + englishScore  //正確,小數被截掉 ⑤


上述代碼經過了一些修改,第①行代碼historyScore變量類型是Float類型。第②行代碼englishScore變量還是UInt16類型。其中第③行代碼直接進行了計算,結果有編譯錯誤。第④行代碼是將UInt16類型的englishScore變量轉換為Float類型,這種轉換是最安全的。第⑤行代碼是將Float類型的historyScore變量轉換為UInt16類型,這種轉換首先會導致小數被截掉,另外如果historyScore變量數很大,會導致運行期異常,這與整型之間的轉換是類似的。

 

 



注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品专区一| 日韩在线视频二区| 国产精品福利片| 狠狠躁18三区二区一区| 精品欧美激情精品一区| 97在线观看免费高清| 日韩av色在线| 亚洲欧美自拍一区| 午夜精品一区二区三区av| 91极品视频在线| 色偷偷91综合久久噜噜| 国产精品色悠悠| 国产久一一精品| 国产69精品久久久久99| 一本色道久久综合亚洲精品小说| 精品成人av一区| 日本久久中文字幕| 欧美极品第一页| 欧美与黑人午夜性猛交久久久| 欧美成人第一页| 欧美在线中文字幕| 日韩电影大全免费观看2023年上| 综合网中文字幕| 国产精品国语对白| 久久精品视频va| 粗暴蹂躏中文一区二区三区| 日韩精品视频在线播放| 精品成人久久av| 欧美专区中文字幕| 国产一区二区欧美日韩| 国产精品视频午夜| 91精品国产91久久久久久不卡| 91亚洲精品一区| 日韩av网站在线| 亚洲在线视频福利| 国产精品美女视频网站| 亚洲欧美日韩中文在线| 久久久在线免费观看| 国产精品偷伦免费视频观看的| 国产成人久久精品| 亚洲精品成人av| 91精品国产自产91精品| 国产一区二区三区丝袜| 国产精品自产拍在线观看中文| 精品久久久91| 亚洲色图色老头| 国产xxx69麻豆国语对白| 亚洲第一av网| 精品福利在线视频| 在线日韩av观看| 国产精品视频一区国模私拍| 91亚洲精品在线| 日日骚av一区| 97精品一区二区三区| 国产视频精品久久久| 九九精品视频在线观看| 91av视频导航| 国产精品草莓在线免费观看| 欧美精品一区二区免费| 亚洲欧美三级伦理| 日韩精品视频免费专区在线播放| 国产丝袜一区二区三区| 日本久久中文字幕| 亚州欧美日韩中文视频| 日韩精品中文字幕在线| 久久久人成影片一区二区三区观看| 日韩精品高清在线观看| 欧美激情第99页| 国产视频观看一区| 国产女同一区二区| 亚洲美腿欧美激情另类| 欧美xxxx18性欧美| 欧美成人精品在线观看| 精品国产一区二区三区在线观看| 九九热这里只有精品免费看| 国产精品一区二区久久久久| 麻豆一区二区在线观看| 国产成人精品一区| 欧美成人精品一区二区| 91久久国产婷婷一区二区| 亚洲精品短视频| 91精品国产综合久久久久久蜜臀| 国产原创欧美精品| 亚洲国产精品视频在线观看| 色综合久久精品亚洲国产| 国产精品久久久久久久久久新婚| 欧美日韩人人澡狠狠躁视频| 成人欧美一区二区三区黑人| 国产不卡av在线免费观看| 欧美高清视频免费观看| 国产精品网红福利| 欧美理论片在线观看| 日本成人黄色片| 日韩欧美国产高清91| 亚洲精品电影在线| 91高清视频在线免费观看| 亚洲国产精品悠悠久久琪琪| 日韩成人中文字幕| 91久久精品在线| 久久99久国产精品黄毛片入口| 日韩美女福利视频| 伊人成人开心激情综合网| 精品久久久999| 九色成人免费视频| 4p变态网欧美系列| 久久精品国产一区二区电影| 国产视频丨精品|在线观看| 欧美激情亚洲一区| 国产精自产拍久久久久久| 亚洲欧美中文日韩在线| 久久久久久综合网天天| 91亚洲精品在线| 91高清视频在线免费观看| 日韩精品中文在线观看| 国产美女精品免费电影| 日韩一二三在线视频播| 欧美大荫蒂xxx| 成人在线激情视频| 亚洲人成伊人成综合网久久久| 日韩在线观看高清| 欧美日韩一区二区在线播放| 欧美日韩综合视频网址| 日韩精品在线免费观看视频| 亚洲第一偷拍网| 色视频www在线播放国产成人| 欧美性xxxx极品hd满灌| 成人写真视频福利网| 国内精品伊人久久| 欧美在线视频网站| 欧美激情小视频| 亚洲国产91精品在线观看| 4438全国亚洲精品在线观看视频| 亚洲精品一区久久久久久| 国产一区二区激情| 欧美午夜片在线免费观看| 欧美黄色片视频| 欧美性猛交xxxx免费看| 在线免费观看羞羞视频一区二区| 成人欧美一区二区三区在线湿哒哒| 国产精品丝袜久久久久久不卡| 国产精品一区二区三区在线播放| 亚洲成人三级在线| 国模视频一区二区三区| 5252色成人免费视频| www.欧美精品| 国内精品久久久久伊人av| 国内外成人免费激情在线视频| 成人精品一区二区三区| 黑人与娇小精品av专区| 久久久久久国产三级电影| 亚洲精品资源美女情侣酒店| 国产精品福利无圣光在线一区| 国产亚洲激情在线| 亚洲性夜色噜噜噜7777| 538国产精品一区二区免费视频| 亚洲人a成www在线影院| 久久久国产一区二区三区| 亚洲精品在线91| 成人精品在线观看| 精品丝袜一区二区三区| 国产精品综合不卡av| 成人观看高清在线观看免费| 91国产视频在线| 日韩欧美在线播放|