Download presentation
Presentation is loading. Please wait.
1
Ch02.變數、常數以及資料型態
2
2.1 變數與常數 變數 (variable)會因程式的執行而有所變化。
常數 (constant)則不會隨著程式的執行而改變其值,而且不可以 更改。 Swift和其它程式語言取變數名稱時,第一個字必須是英文字母或 底線(_),之後可為數字、英文字母或底線(_)。 num、score、average_score、c_score,皆為合法的變數名稱 。 8num、C&C、xyz?54為不合法的變數名稱。
3
2.2 資料型態 關鍵字 資料型態 Int 整數 Float 浮點數 Double String 字串 Bool 布林
4
各種資料型態所佔的byte數及其表示範圍
Character 1 -128 ~ 127 Float 4 3.4E-38 ~ 3.4E+38 Double 8 1.7E-308 ~ 1.7E+308 Int8 Int16 2 -32,768 ~ 32767 Int32 -2,147,483,648 ~ 2,147,483,647 Int64 ~
5
範例程式 // conversion let mile = 95 let mileToKm = 1.6 var speed = Double(mile) * mileToKm print("陳偉殷的投球速可達 \(mile) miles") print("亦即 \(speed) 公里")
6
輸出結果 陳偉殷的投球速可達 95 miles 亦即 公里
7
2.3 宣告變數與常數 Swift以var和let關鍵字表示變數與常數,如下所示: var radius = 5
let pi = 也可以宣告字串 (string) 和布林 (boolean) 變數或常數名稱: let language = "Swift" let boolVariable = true
8
除了使用型態的推論判斷變數與常數的型態外,也可以使用型態 的註釋方式來表明其身份,如下所示:
var number: Int number = 12 也可以將宣告和初始值寫成一行,如下所示: var number: Int = 12 常數型態必須將宣告和指定初始值一起完成。如下所示: let str: String = "Hello, Swift"
9
表示數值時,可以用底線分隔數字,每三個數字以 _ 隔開。
let oneMillion = 1_000_000 print(oneMillion) 輸出為
10
整數型態常數除了以十進位表示外,也可以二進位,八進位或是 十六進位的方式表示。
let decimalValue = 168 let binaryValue = 0b let octoalValue = 0o250 let hexValue = 0xa8 皆是表示 168 的方法
11
也可以利用 typealias取某一資料型態的別名 (alias)。
// typealiase typealias int = Int var number: int = 100 print("number = \(number)")
12
2.4 印出變數與常數 print函式可直接將雙引號括起來的字串印出,若是要印出變數與 常數值,則直接以變數和常數名稱表示即可。
print(radius) 若要在其中輸出定義的變數或常數值,很簡單,只是在其前面加 上 \ ,之後以小括號括起變數或常數名稱即可。 print("radius = \(radius)")
13
print也可以和C一樣,可以使用格式化的方式加以輸出。
print(String(format: "radius = %d", radius)) print(String(format: "pi = %f", pi)) 若要在輸出時不要跳行可以加上一參數termainator: "” print(String(format: "radius = %d", radius), terminator:"")
14
2.5 註解敘述 註解敘述 (comment statement) 在程式中是不加以編譯的,但為 了讓程式的易讀性提高,必需在程式重要的地方加以註解。 可使用 // 或是 /* …. */ 型式表示。
15
2.6 分號 Swift不必利用分號來做為敘述的結束點。 加分號也可以,不過很少人會這樣做。
若有多行敘述撰寫於同一行,則可以利用分號將其隔開。 print("Hello "); print(language)
16
2.7 字串型態 字串常數 (string literal) 是由雙引號所括起來的字串,若是多於一 行的字串的話,現 Swift 4 提供一方法可以完成,那就是在字串的 前後以 “”“ 括起來。 如以下範例: let name2 = """ 蔡明志 輔仁大學 資訊管理系 """
17
轉義字元 \\ 反斜線 \t 跳四格 \n 換行 \r 跳到下一行首 \” 雙引號
18
2.7.1 常用的字串函式 定義空字串有兩種方式: var str = "" var str2 = String()
利用 isEmpty 函式判斷它是否為空字串: if str2.isEmpty { print("str2 is a empty string") }
19
將兩個字串相連在一起,可使用 + 運算子 : str = "Learning Swift " str2 = "programming now " var swift = str + str2 若將字串定義為 var,表示此字串是可以更改的。若是定義為 let, 表示此字串不可以更改,若你加以修改,將會產生錯誤的訊息。 可以使用 == 運算子判斷兩個字串是否相等。
20
想將字串轉為大寫或小寫字母,可用 lowercaseString 與 uppercaseString 函式加以轉換。
let upperStr3 = str3.uppercaseString print(upperStr3) print(upperStr3.lowercaseString) 輸出結果如下: I LOVE SWIFT i love swift
21
可以將字串組合成一陣列,其實很簡單只要使用中括號括起來即 可。
let mobile = [ "Apple: iPhone 6", "Apple: iPad", "Android: hTC", "Android: Samsung", "Android: Sony" ]
22
要從 mobile 字串陣列找出字首為 “Apple” 的字串,則可以使用 hasPrefix 函式 ;找出字尾為的字串,可使用 hasSuffix 函式。
for i in mobile { if i.hasPrefix("Apple") { print(i) } 輸出結果如下: Apple: iPhone 6 Apple: iPad
23
字串若有 \ 後接小括號和變數或常數名稱,表示要印出其所對應 的值。
var mobilePhone = "iPhone" let number = 6 let myMobile = "I want to buy an \(mobilePhone) \(number)" print(myMobile) 輸出結果如下: I wnat to buy an iPhone 6
24
其他函式 count:表示字串的長度。 droopFirst() :刪除字串的前一個字元。
droopLast() :刪除字串的最後一個字元。 droopLast(2) :刪除字串的最後二個字元。
25
var content = "Swift" print(content.count) print(content.dropFirst()) print(content.dropFirst(2)) print(content.dropLast()) print(content.dropLast(2)) print(content) 輸出結果如下: 5 wift ift Swif Swi Swift
26
2.7.2 字串是屬於值型態 值型態 (value type),基本上表示當指定與複製字串時,將佔不同 的記憶體空間,所以其中一個字串若更改了,也不會影響另一個 字串 。
27
範例程式 var myMobile = "iPhone 6" var yourMobile = myMobile print("My mobile phone is \(myMobile)") print("Your mobile phone is \(yourMobile)") yourMobile = "hTC" print("\n")
28
輸出結果 My mobile phone is iPhone 6 Your mobile phone is iPhone 6 Your mobile phone is hTC
29
2.8 選項型態(optional type) Swift 還有一獨特的資料型態,那就是選項型態 (optional type)。 表示它可能沒有值,亦即選項型態的變數或常數不是有值就是無 資料 (nil) 。 宣告方式:在型態名稱後加上 “?”
30
範例程式 // implicitly unwrapped optionals let possibleInt: Int? = 123 print(possibleInt!) let possibleInteger: Int! = 4567 print(possibleInteger)
31
輸出結果 其中 possibleInt 是整數的選項型態,若確定有資料,則可在變數或 常數名稱後加上 !。 另一種是隱含解開選項型態 (implicitly unwrapped optional),如 possibleInteger 變數的型態為 Int!,表示 possibleInteger 變數確定有 資料存在。
Similar presentations