iOS開發Swift篇—(三)字符串和數據類型


iOS開發Swift篇—(三)字符串和數據類型

一、字符串

字符串是String類型的數據,用雙引號""包住文字內容  let website = "http://www.wendingding.com"

1.字符串的常見操作

(1)用加號 + 做字符串拼接

let scheme = "http://"

let path = “www.wendingding.com”

let website = scheme + path

// website的內容是”http://www.wendingding.com”

 

(2)用反斜線 \ 和 小括號 () 做字符串插值(把常量\變量插入到字符串中)

let hand = 2

var age = 20

let str = "我今年\(age)歲了,有\(hand)只手"

// str的內容是"我今年20歲了,有2只手"

注意:swift是類型安全語言,不同的數據類型是不能相加的。(需要強制轉換類型)

2.打印輸出

Swift提供了2個打印輸出函數

println :輸出內容后會自動換行

print :對比println,少了個自動換行的功能

 

二、數據類型

1.Swift中常用的數據類型有

Int、Float、Double、Bool、Character、String

Array、Dictionary、元組類型(Tuple)、可選類型(Optional)

注意:數據類型的首字母都是大寫的

 

2.指定變量\常量的數據類型

  在常量\變量名后面加上 冒號(:) 和 類型名稱

let age: Int = 10

上面代碼表示:定義了一個Int類型的常量age,初始值是10

 

提示:一般來說,沒有必要明確指定變量\常量的類型。如果在聲明常量\變量時賦了初始值,Swift可以自動推斷出這個常量\變量的類型

如:let age = 20  Swift會推斷出age是Int類型,因為20是個整數

 

三、變量的初始化

Swift嚴格要求變量在使用之前必須進行初始化

注意:下面的代碼是錯誤的

var a: Int

let c = a + 10 

說明

第1行代碼中:Swift並不會為變量a賦初值,a沒有初始化

第2行代碼會報錯

 

下面的代碼是正確的

var a: Int = 20

let c = a + 10

 

四、整數

1.整數的分類

整數分為2種類型

有符號(signed):正、負、零

無符號(unsigned):正、零

 

Swift提供了8、16、32、64位的有符號和無符號整數,比如

UInt8 :8位無符號整型

Int32 :32位有符號整型

Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64

 

2.最值

可以通過min和max屬性來獲取某個類型的最小值和最大值

let minValue = UInt8.min   // UInt8 類型的 min 等於0

let maxValue = UInt8.max  // UInt8 類型的 max 等於255

 

3.Int和UInt

Swift還提供了特殊的有符號整數類型Int和無符號整數類型UInt

說明:Int\UInt的長度和當前系統平台一樣

在32位系統平台上,Int和UInt的長度是32位

在64位系統平台上,Int和UInt的長度是64位

Int在32位系統平台的取值范圍:-2147483648 ~ 2147483647

 

建議

在定義變量時,別總是在考慮有無符號、數據長度的問題

盡量使用Int,這樣可以保證代碼的簡潔、可復用性

 

4.存儲范圍

每種數據類型都有各自的存儲范圍,比如

Int8的存儲范圍是:–128 ~ 127

UInt8的存儲范圍是:0 ~ 255

 

如果數值超過了存儲范圍,編譯器會直接報錯

注意:下面的語句都會直接報錯

let num1: UInt8 = -1

let num2: Int8 = Int8.max + 1

說明

第1行代碼報錯原因: UInt8不能存儲負數

第2行代碼報錯原因: Int8能存儲的最大值是Int8.max

 

5.整數的表示形式

整數的4種表示形式

(1)十進制數:沒有前綴

  let i1 = 10 // 10

(2)二進制數:以0b為前綴

  let i2 = 0b1010 // 10

(3)八進制數:以0o為前綴

  let i3 = 0o12 // 10

(4)十六進制數:以0x為前綴

  let i4 = 0xA // 10

 

五、浮點數

1.浮點數說明

浮點數,就是小數。Swift提供了兩種浮點數類型

Double :64位浮點數,當浮點值非常大或需要非常精確時使用此類型

Float :32位浮點數,當浮點值不需要使用Double的時候使用此類型

 

精確程度

Double :至少15位小數

Float :至少6位小數

 

注意:如果沒有明確說明類型,浮點數默認就是Double類型

let num = 0.14 // num是Double類型的常量

 

2.浮點數的表示形式

浮點數可以用 十進制十六進制 2種進制來表示

(1)十進制(沒有前綴)

1)沒有指數:let d1 = 12.5

2)有指數    :let d2 = 0.125e2  

// 0.125e2 == 0.125 * 10²

MeN ==  M * 10的N次方

 

(2)十六進制(以0x為前綴,且一定要有指數)

let d3 = 0xC.8p0 

// 0xC.8p0 == 0xC.8 * 2º == 12.5 * 1

0xMpN == 0xM * 2的N次方

let d3 = 0xC.8p1 

// 0xC.8p1 == 0xC.8 * 2¹ == 12.5 * 2  == 25.0

 

3.數字格式

數字可以增加額外的格式,使它們更容易閱讀

(1)可以增加額外的零 0

let money = 001999 // 1999

let money2 = 001999.000 // 1999.0

(2)可以增加額外的下划線 _ ,以增強可讀性

let oneMillion1 = 1_000_000 // 1000000

let oneMillion2 = 100_0000 // 1000000

let overOneMillion = 1_000_000.000_001 // 1000000.000001 

說明:增加了額外的零  0和下划線 _ ,並不會影響原來的數值大小

 

六、類型轉換

兩個類型不相同的數值,是不能直接進行運算的

示例1:

注意:下面的語句是錯誤的

let num1: UInt8 = 10;    

let num2: Int = 20;

let sum: Int = num1 + num2 

第3行會報錯說明

報錯原因:num1是UInt8類型,num2是類型Int,類型不同,不能相加

解決方案:將num1轉為Int類型,就能與num2進行相加

下面的語句是正確的

let sum: Int = Int(num1) + num2

 

示例2:

注意:下面的語句是錯誤的

let num1 = 3 // num1是Int類型

let num2 = 0.14 // num2是Double類型

let sum = num1 + num2

第3行報錯說明

報錯原因:num1是Int類型,num2是類型Double,類型不同,不能相加

解決方案:將num1轉為Double類型,就能與num2進行相加

下面的語句是正確的

let sum = Double(num1) + num2

 

注意:

下面的寫法是正確的

let sum = 3 + 0.14

3和0.14相加得到結果3.14,等賦值以后,編譯器才會自動推斷出sum是Double類型

 

七、類型別名

可以使用typealias關鍵字定義類型的別名,跟C語言的typedef作用類似

  typealias MyInt = Int // 給Int類型起了個別名叫做MyInt

原類型名稱能用在什么地方,別名就能用在什么地方

  聲明變量\常量類型

  let num: MyInt = 20

獲得類型的最值

  let minValue = MyInt.min

類型轉換

  let num = MyInt(3.14) // 3


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM