最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

swift 語法 (part I)

XAMPP下载 admin 863浏览 0评论
 前言
程式語言就是一門語言,而語言是拿來溝通,所以程式語言就是拿來跟電腦溝同的語言。我們學習高階的程式語言是從語法開始,看過所有的基本語法後才可以繼續後續的學習,當然每個人的學習方法不同,也不見得要依照我得方法開始。只是對於初學者而言,語法就是基礎,你總不會還沒學會英文字母,就開始看原文書吧!!

官方手冊需要花時間好好看,但不用一次就背起來,他就像字典一樣是工具書,而工具書就是當你忘了怎麼寫的時候,可以翻閱。這跟學英文一樣,你懂的單字夠多就好,不是非得把英文字典全部背起來~~

宣告
var 宣告變數
let 宣告常數 (佔用記憶體空間較少,如果確定該值不會變動,盡量設為常數)

let str = “hello world”
var value = 0
value=10
value = ”十“ //會編譯錯誤
常數,顧名思義,除了在宣告時要給予初始值外,之後也無法在變更。
變數,宣告時不一定要給值,之後也可以任意修改。
PS: = 左右兩側要平衡 (等號左邊有幾個空白,右邊就有幾個。沒有空白就都沒有)

但是swift很貼心的在變數或常數宣告時可以省略資料型態,其型態會由等號右邊的值來決定,以上例來說常數 str 已設定為字符串型態,value 已設定為整數型態。

swift語法在資料型態的要求上非常嚴謹,已經宣告的變數不可以再放入不同的資料型態,上例的value已設定為整數型態,不可再放入字串。

let zero = 0
zero沒有指定資料型態,會依據等號右邊的0,自動設置為Int型態,如果將值改為0.0,就會變成Float型態,當然也可以一開始就設定型態,Ex:

let one: Float = 1.0
小數點資料型態有兩種 :
Double 小數點類型數字(顯示位數較多)
Float 小數點類型數字(顯示位數較少)

字串與字元
字串資料型態 :String
字元資料型態 :Character
字元型態只能儲存一個字,字串是由一系列字元組合而成。swift語言中都是以雙引號作為開始與結尾,Ex:

let one: Character = “1”
let str: String = “hello”
字串可以在雙引號中使用()來插入一個變數或常數,並且不用管型別問題,直接轉換為字串型別,Ex:

let age = 13
let str = “他\(age)歲”
Str內容為 「他13歲」

迴圈
Swift語言中有三種類型:For-In迴圈、While迴圈與Repeat-While迴圈。

For-In迴圈
for i in 1…10 {
print(i)
}
//印出整數數字 1、2、3、4…10
While迴圈
當while後的判斷條件為真的時候,就會進入while迴圈執行
var oddnumber = 1
while oddnumber < 10 {
print(oddnumber)
oddnumber += 2
}
//印出數字1、3、5、7、9
Repeat-While迴圈
var oddnumber = 1
repeat {
print(oddnumber)
oddnumber += 2
} while oddnumber < 10
//印出數字1、3、5、7、9
由於條件檢查是在程式碼最後面,因此使用Repeat-While迴圈時,至少會先執行一次。

陣列、集合、字典
三者差異
陣列(Array)
使用整數索引值(index)來存取內容,索引值從0開始到陣列數量減1為止。
集合(Set)
只能判斷某個值是否在集合內,且無法透過索引值(index)或鍵值(Key)來存取集合內容。但可以進行集合運算,例如:交集、聯集、對稱差集、差集。
字典(Dictionary)
透過鍵(Key)值來存取內容,鍵值不限定整數,可以是任何型態。
陣列
使用let宣告一個整數陣列,該陣列內容就固定了,只能讀取不能修改,此外可透過索引值做單一讀取

let numbers = [3, 5, 9, 14, 18]
let value = numbers[1] /alue = 5
若改使用var宣告陣列,就可以修改內容

var names = [“Tom”, “Julia”, “Charlie”]
names[0] = “John” //names被替換成 [“John”, “Julia”, “Charlie”]
也可以利用append()函數將資料加到陣列最後面,也可以用insert()函數將資料插入到指定位置

names.append(“Henry”)
//names = [“John”, “Julia”, “Charlie”, “Henry”]
names.insert(“Terry”, at: 1)
//names = [“John”, “Terry”, “Julia”, “Charlie”, “Henry”]
屬性count用來取得陣列中有幾筆資料

let count = names.count //count = 5
remove(at: )用來刪除特定索引值的資料,removeAll()來刪除陣列中所有資料

names.remove(at: 2) //”Julia” 被刪除了
names.removeAll() //names內資料全部刪除
集合
集合主要拿來儲存不需要強調索引值或鍵值的資料。就是不需要將資料放入特定位址,也不需要刪除特定位址的資料。

要確認集合中是否包含某個特定值,可以使用contains()函數

var car: Set = [“方向盤”, “輪子”, “車門”, “車窗”]
car.contains(“引擎”) //false
將資料加入集合中,可以使用insert()。若要將資料刪除,可以使用remove()。要刪除集合中所有資料,使用空集合[]即可。
PS:新加入集合的資料並不會放在集合最後面「位置」,因為集合本身是沒有索引值或鍵值去存放資料,所以也沒有所謂「位置」的區別。

car.insert(“天窗”)
//car = “車門”, “方向盤”, “車窗”, “天窗”, “輪子”
let standardcar = car.remove(“天窗”)
//car = “車門”, “方向盤”, “車窗”, “輪子”
car = []
//集合內資料全部清空
集合共有四種集合運算

交集 (intersects)
聯集(union)
對稱差集(subtract)
差集(exclusive)

QQ截图20181026164620
 let oddDigits: Set = [1, 3, 5, 7, 9]
let evenDigits: Set = [2, 4, 6, 8, 10]
let singleDigitPrimeNumbers: Set = [2, 3, 5, 7, 11]

oddDigits.intersection(evenDigits)
// []
oddDigits.union(evenDigits)
// [10, 2, 9, 4, 5, 7, 6, 3, 1, 8]
oddDigits.subtracting(singleDigitPrimeNumbers)
// [9, 1]
oddDigits.symmetricDifference(singleDigitPrimeNumbers)
// [2, 9, 1, 11]
字典
字典簡單講就是索引值可以自訂的陣列。字典的資料型態是Dictionary < Key , Value >,透過Key來存取特定的Value

var location: [String: String] = [“TPE”: “Taipei”, “TXG”: “Taichung”, “TNN”: “Tainan”]
location[“TPE”] //返回”Taipei”
刪除字典中資料,方法如下:
使用 removeValue ( forKey : )來從字典裡移除特定鍵值對(Key-Value)。如果字典存在要刪除的鍵值對,會刪除該鍵值對並且返回該鍵值對的值(value),如果鍵值對不存在則返回 nil

location[“TPE”] = nil   //刪除特定Key
let removedValue = location.removeValue(forKey: “TXG”) //刪除”TXG”,且removedValue = “Taichung”
location = [:]  //刪除全部資料
part I 就先到這告一個段落,明天繼續其他語法~

转载请注明:XAMPP中文组官网 » swift 語法 (part I)

您必须 登录 才能发表评论!