日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Swift--基本数据类型(一)

發(fā)布時間:2023/12/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Swift--基本数据类型(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

不像許多其他語言中,X不要求你寫一個分號(;)在你的代碼中的每個語句后,雖然可以這樣做。然而,如果你想在一行中寫入多個單獨的語句分號是必需的:

.??? 1 ?let cat = ""; println(cat)

.??? 2 ?// prints ""

數(shù)據(jù)類型

Integers

integers是整數(shù),沒有小數(shù)部分,如42和-23。整數(shù)有符號(正,零或負的)或無符號(正或零).

Swift提供8,16,32,和64位形式的符號和無符號整數(shù)。這些整數(shù)遵循類似于C的命名慣例,在一個8位無符號整數(shù)類型UINT8,以及一個32位帶符號整數(shù)為Int32類型.

Integer Bounds

可以用其最小和最大屬性訪問每個整數(shù)類型的最小值和最大值

1 let minValue = UInt8.min // minValue is equal to 0, and is of type UInt8

2 let maxValue = UInt8.max // maxValue is equal to 255, and is of type UInt8

這些屬性的值是適當?shù)拇笮〉奶柎a類型(如UINT8在上面的例子中),并
可以在沿著同一類型的其它值的表達式,因此可以使用。

Int

在大多數(shù)情況下,你并不需要挑選整數(shù)的特定大小在代碼中使用。Swift提供了一個額外的整數(shù)類型,int,它具有相同的大小作為當前平臺的本地字大小:
?在32位平臺,詮釋的是同樣大小的Int32。
?在64位平臺,詮釋的是同樣大小的Int64。
除非你需要用整數(shù)的特定大小的工作,總是使用int代碼中的整數(shù)值。這有助于代碼的一致性和互操作性。即使在32位平臺上,詮釋可以存儲任何值-2,147,483,648到2,147,483,647之間,并且是許多整數(shù)范圍足夠大。

UInt

Swift還提供了一個無符號的整數(shù)類型,UINT,它具有相同的大小作為當前平臺的本地字大小:
?在32位平臺上,UINT是大小相同的UInt32。
?在64位平臺上,UINT是大小相同的UInt64。

?

Floating-Point Numbers

浮點數(shù)與小數(shù)部分的數(shù)字,如3.14159,0.1,和-273.15。浮點類型可以表示比整數(shù)類型更廣泛的范圍內(nèi)的值,并且可以存儲數(shù)字,
是更大或更小的比可以存儲在一個Int。 SWIFT提供兩個有符號浮點數(shù)類型:
?雙代表一個64位浮點數(shù)字。使用它時,浮點值必須是非常大的,或
特別精確。
?浮點表示一個32位浮點數(shù)字。使用它時,浮點值不需要64位精度。

Type Safety and Type Inference

Swift是一種類型安全的語言。類型安全的語言鼓勵你要搞清楚值的類型代碼可以工作。如果您的代碼部分需要一個字符串,你不能錯誤地傳遞一個詮釋。
因為Swift是類型安全的,它會執(zhí)行編譯你的代碼和標志的任何類型不匹配的錯誤時類型檢查。這使您能夠捕獲并盡可能早地在開發(fā)過程中修正錯誤。
類型檢查幫助您避免錯誤,當您正在使用不同類型的值。但是,這并不意味著你必須指定每一個常量和變量所聲明的類型。如果不指定值,你需要的類型,Swift使用類型推理來制定出相應的類型。類型推斷使編譯器自動推斷出特定的表達式的類型時,它編譯你的代碼,只需通過檢查您提供的值。
因為類型推斷,斯威夫特需要少得多的類型聲明不是語言,如C或Objective-C 。常量和變量仍然顯式類型,但大部分指定其類型的工作是為你做。
當你聲明一個常量或變量的初始值類型推斷是特別有用的。這通常是通過賦予文本值(或文字)到所聲明的地步了常量或變量進行。 (字面上的值是直接出現(xiàn)在源代碼中的值,如下面的例子42和3.14159 。 )

例如,如果您指定42到一個新的常數(shù)常值,不用說它是什么類型,Swift推斷出你想要的常量是一個詮釋,因為你已經(jīng)初始化它與一些看起來像一個整數(shù)

.??? 1 ?let meaningOfLife= 42

.??? 2 ?// meaningOfLife is inferred to be of typeInt

同樣,如果你不指定類型的浮點字面值,Swift推斷出你想要創(chuàng)建一個Double

.??? 1 ?let pi = 3.14159

.??? 2 ?// pi is inferred to be of type Double

Swift總是選擇Double(而非Float)時推斷浮點數(shù)類型。
如果你把在一個表達式中整數(shù)和浮點常量,一個Double類型會從上下文推斷:

.??? 1 ?let anotherPi= 3 + 0.14159

.??? 2 ?// anotherPi is also inferred to be of typeDouble

?

Numeric Literals

整型常量可以寫成:
?一個十進制數(shù),不帶前綴
?一個二進制數(shù),用前綴0b
?一個八進制數(shù),用0°前綴
?一個十六進制數(shù),以0x前綴

所有這些整型常量的有17的十進制值:

.??? 1 ?let decimalInteger= 17

2 ?let binaryInteger = 0b10001 // 17 in binary notation

.??? ?

3 ?let octalInteger = 0o21 // 17 in octal notation

.??? ?

4 ?let hexadecimalInteger = 0x11 // 17 inhexadecimal notation

.??? ?

浮點文本可以是十進制(不帶前綴)或十六進制(以0x前綴)。它們必須始終具有在小數(shù)點的兩側(cè)號碼(或十六進制數(shù))。他們也可以有一個可選的指數(shù),由一個大寫或小寫e表示十進制浮點數(shù)表示,或大寫或小寫p表示十六進制浮點數(shù)

為十進制數(shù)用的exp指數(shù),基數(shù)乘以10exp:

? 1.25e2means1.25×102,or125.0.

? 1.25e-2means1.25×10-2,or0.0125.

為十六進制數(shù)與EXP的指數(shù),基部數(shù)乘以2EXP:

? 0xFp2means15×22,or60.0.?? 0xFp-2means15×2-2,or3.75.

所有這些浮點常量的有12.1875十進制值:

.??? 1 ?let decimalDouble= 12.1875

.??? 2 ?let exponentDouble= 1.21875e1

.??? 3 ?let hexadecimalDouble= 0xC.3p0

數(shù)字文本可以包含額外的格式,使它們更容易閱讀。這兩個整數(shù)和浮點數(shù)可以被填充
有額外的零,并且可以包含下劃線,以幫助可讀性。無論類型的格式影響文本的基本價值:

.??? 1 ?let paddedDouble= 000123.456

.??? 2 ?let oneMillion= 1_000_000

.??? 3 ?let justOverOneMillion= 1_000_000.000_000_1

?

Numeric Type Conversion

使用Int類型的代碼中的所有通用的整型常量和變量,即使它們是已知的非負。在日常生活中使用默認的整數(shù)類型是指整型常量和變量是在代碼中直接互操作,并將匹配的類型推斷為整數(shù)文字值。
僅使用時,特別需要他們手頭的任務,其他整數(shù)類型,因為從外部來源明確大小的數(shù)據(jù),或者對性能,內(nèi)存使用情況,或其他必要的優(yōu)化。在這些情況下使用顯式大小的類型,可以捕捉任何意外溢出值和隱式記錄所使用的數(shù)據(jù)的性質(zhì)。

Integer Conversion

可以存儲在一個整數(shù)常量或變量數(shù)的范圍是不同的每個數(shù)值類型。一個INT8常量或變量可以存儲數(shù)-128到127之間,而一個UINT8常量或變量可以存儲0到255之間的數(shù)字。一個數(shù)字,將不會放入一個大小的整數(shù)類型的常量或變量被報告為錯誤時你的代碼被編譯:

.??? 1 ?let cannotBeNegative: UInt8 = -1

.??? 2 ?// UInt8 cannot store negative numbers, andso this will report an error

.??? 3 ?let tooBig: Int8 = Int8.max + 1

.??? 4 ?// Int8 cannot store a number larger thanits maximum value,

.??? 5 ?// and so this will also report an error

因為每個數(shù)字類型可以存儲不同的值的范圍,你必須選擇加入在逐案基礎上數(shù)值類型的轉(zhuǎn)換。這種選擇適用的做法可以防止隱藏的轉(zhuǎn)換錯誤,并幫助作出明確在你的代碼的類型轉(zhuǎn)換意圖。
要轉(zhuǎn)換一個特定的數(shù)字類型到另一個,你初始化與現(xiàn)有值所需類型的新號碼。在下面的例子中,恒定twoThousand是類型UInt16的的,而常數(shù)1是類型UINT8的。它們不能被一起直接加入的,因為它們是相同類型的不。相反,該??示例調(diào)用UInt16的(一個)來創(chuàng)建一個變量的值初始化的新UInt16的,并且使用這個值來代替原來的:

.??? 1 ?let twoThousand: UInt16 = 2_000

.??? 2 ?let one: UInt8 = 1

.??? 3 ?let twoThousandAndOne= twoThousand + UInt16(one)

由于增加了雙方都類型UInt16的目前,除了是允許的。輸出常數(shù)(twoThousandAndOne)推斷為類型UInt16的,因為它是兩個UInt16的值的總和。
個SomeType(ofInitialValue)是默認的方式來調(diào)用雨燕類型的初始化,并傳遞一個初始值。在幕后,UInt16的有一個接受UINT8值的初始值設定項,因此這個初始化用于從現(xiàn)有UINT8作出新的UInt16的。你不能傳遞任何類型的這里,但是,它必須是一個類型的UInt16的提供了一個初始化。擴展現(xiàn)有類型,規(guī)定接受新的類型(包括你自己的類型定義)是覆蓋在擴展初始化。

Integer and Floating-Point Conversion

.??? 1 ?let three = 3

.??? 2 ?let pointOneFourOneFiveNine= 0.14159

.??? 3 ?let pi = Double(three) +pointOneFourOneFiveNine

.??? 4 ?// pi equals 3.14159, and is inferred to beof type Double

這里,常數(shù)3的值被用來創(chuàng)建Double類型的新值,從而使除了兩側(cè)是相同類型的。如果沒有這個轉(zhuǎn)換到位,另外也不會被允許。
反過來也是如此浮點到整數(shù)的轉(zhuǎn)換,在一個整數(shù)類型可以用double或float值進行初始化:

.??? 1 ?let integerPi= Int(pi)

.??? 2 ?// integerPi equals 3, and is inferred tobe of type Int

當用于以這種方式初始化一個新的整數(shù)值的浮點值總是被截斷。這意味著,4.75變?yōu)?,和-3.9變得-3。

?

Type Aliases

類型別名為現(xiàn)有類型定義的替代名稱。您可以定義類型別名與TYPEALIAS關鍵字。當你想用的名稱是上下文更適合于指現(xiàn)有類型類型別名是有用的,
與來自外部源的特定大小的數(shù)據(jù)時,如

typealias AudioSample = UInt16

一旦你定義了一個類型別名,你可以使用別名的任何地方你可能會使用原來的名稱:

.??? 1 ?var maxAmplitudeFound= AudioSample.min

.??? 2 ?// maxAmplitudeFound is now 0

這里,AudioSample被定義為一個別名UInt16的。因為它是一個別名,調(diào)用AudioSample.min實際上是調(diào)用UInt16.min,這對于maxAmplitudeFound變量提供初始值0。

總結(jié)

以上是生活随笔為你收集整理的Swift--基本数据类型(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。