激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Swift - Swift內置的數字類型及基本的轉換方法

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

2020-12-21 14:57Swift教程網 Swift

這篇文章主要介紹了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 運行上面的程序,到以下結果。

?
1
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 運行上面的程序,得到以下結果。

?
1
2
3
42
3.14159
3.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變量數很大,會導致運行期異常,這與整型之間的轉換是類似的。

延伸 · 閱讀

精彩推薦
  • SwiftSwift教程之基礎數據類型詳解

    Swift教程之基礎數據類型詳解

    這篇文章主要介紹了Swift教程之基礎數據類型詳解,本文詳細講解了Swift中的基本數據類型和基本語法,例如常量和變量、注釋、分號、整數、數值類型轉換等...

    Swift教程網5162020-12-18
  • SwiftSwift的74個常用內置函數介紹

    Swift的74個常用內置函數介紹

    這篇文章主要介紹了Swift的74個常用內置函數介紹,這篇文章列舉出了所有的Swift庫函數,內置函數是指無需引入任何模塊即可以直接使用的函數,需要的朋友可...

    Swift教程網5802020-12-19
  • SwiftSwift實現多個TableView側滑與切換效果

    Swift實現多個TableView側滑與切換效果

    這篇文章主要為大家詳細介紹了Swift實現多個TableView側滑與切換效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    乞力馬扎羅的雪雪5822021-01-08
  • SwiftSwift中轉義閉包示例詳解

    Swift中轉義閉包示例詳解

    在Swift 中的閉包類似于結構塊,并可以在任何地方調用,下面這篇文章主要給大家介紹了關于Swift中轉義閉包的相關資料,需要的朋友可以參考下...

    小小小_小朋友11412021-12-26
  • Swiftswift where與匹配模式的實例詳解

    swift where與匹配模式的實例詳解

    這篇文章主要介紹了swift where與匹配模式的實例詳解的相關資料,這里附有簡單的示例代碼,講的比較清楚,需要的朋友可以參考下...

    追到夢的魔術師14382021-01-06
  • Swiftmac git xcrun error active developer path 錯誤

    mac git xcrun error active developer path 錯誤

    本文主要是講訴了如何解決在mac下使用git;xcode4.6的環境時,出現了錯誤(mac git xcrun error active developer path)的解決辦法,希望對大家有所幫助...

    Swift教程網2232020-12-16
  • SwiftSwift使用CollectionView實現廣告欄滑動效果

    Swift使用CollectionView實現廣告欄滑動效果

    這篇文章主要為大家詳細介紹了Swift使用CollectionView實現廣告欄滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Stevin的技術博客12372021-01-13
  • SwiftSwift能代替Objective-C嗎?

    Swift能代替Objective-C嗎?

    這是我在網上上看到的答案,復制粘貼過來和大家分享一下,因為我和很多人一樣很關心Swift的出現對Mac開發的影響和對Objective-C的影響。...

    Swift教程網4412020-12-16
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 粉嫩粉嫩一区二区三区在线播放 | 中国女警察一级毛片视频 | 国产精品久久久久久久久久10秀 | 亚洲国产精品一区二区久久 | 免费a级毛片大学生免费观看 | 日韩激情在线视频 | 99视频在线观看视频 | 国产精品视频久久久 | 精品久久久久久久久久中文字幕 | 色中色综合网 | 国产欧美日韩在线不卡第一页 | 久久久精品福利 | 免费观看黄色一级视频 | 美国一级毛片片aa久久综合 | 久久免费激情视频 | 97青青草视频| 巨乳毛片 | 国产一区二区视频观看 | japanese javhd| 亚洲va久久久噜噜噜久久男同 | 国产一级在线免费观看 | 亚洲午夜电影 | 午夜小视频免费观看 | 欧美日韩亚洲一区二区三区 | 农村寡妇偷毛片一级 | 国产日产精品一区二区三区四区 | 九九热视频在线免费观看 | 精品一区二区三区在线播放 | 亚洲成人在线视频网站 | 日本在线免费观看视频 | 国产婷婷一区二区三区 | 欧美一级黄色免费看 | 日韩精品久久久 | 欧美成人精品不卡视频在线观看 | 欧美一级特黄a | 免费男女视频 | 亚洲一区在线看 | 最新av网址在线观看 | 男人午夜视频 | 福利免费观看 | 老a影视网站在线观看免费 欧美日韩成人一区二区 |