iOS開發Swift篇—(三)字串和資料類型

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   os   strong   io   

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.