標籤:swift 遍曆 ios switch unicode
import Foundationprintln("Hello, World!")var string1 = "Hello BeiJing" //定義一個變數(字串)//var string1: String = "Hello, BeiJing" //系統會自動進行類型推斷為此運算式println("string1 = \(string1)")let string2 = "Hello, Everybody" //let定義一個常量println("string2 = \(string2)")string1 = "Hello"let number1 = 20//let number1: Int = 20 //在Swift中整形自動推斷為Int, 如果系統是32位系統,那麼這個整形就是Int32,如果是64位系統,那麼就是Int64let number2: Int8 = 20 //如果我需要一個8位的整形數,那麼需要顯示的指定位Int8let number3: Double = 12.0 //在Swift中,浮點型預設是Doublelet number4: Float = 28.0 //如果需要Float類型,那麼需要顯示指定var number = Double(number2) + number3 //Swift中,不支援隱式轉換,如果想讓兩個不同類型的資料進行運算,那麼需要顯示的轉換其類型: 類型名(常量/變數名)let 你好 = "你好"println("你好 = \(你好)")//元組, 從關係型資料庫裡引出的概念, 關係型資料庫裡面的每一條記錄都相當於一個元組,元組裡面的資料可以是不同類型.<pre name="code" class="objc">var request404Error:(Int, String) = (404, "Request Error Message") //定義一個元組, 相當於(Int, String)類型的元組println("requestCode = \(request404Error.0),requestErrorMessage = \(request404Error.1)") //可以通過下標來取出元組裡面的元素,元組的分解var request404ErrorA = (errorCode: 404, errorMessage: "Request Error Message") //在建立元組的時候, 可以給元祖裡面的元素類型名println("errorCode = \(request404ErrorA.errorCode), errorMessage = \(request404ErrorA.errorMessage)")//數組(Swift中數組元素是同一類型才可以從數組中讀取,也就是只能存放同一類型的元素)var names: String[] = ["太一", "嘉兒", "阿和", "阿武"]var name1 = ["美美", "光子郎"]println("names = \(names)")names.append("素娜") //往數組裡面添加元素,可以使用appendvar name = name1 + names //往數組裡面添加一個數組, 可以使用"+"println("name = \(name)")println("names = \(names)")names[0] = "亞古獸" //通過下標修改數組裡的元素println("names = \(names)")names.removeAtIndex(0) //刪除元素println("names = \(names)")names.removeLast()println("names = \(names)")//let聲明的數組為不可變數組, 不能添加和刪除元素 但可以替換let namesA = ["大輔", "一乘寺賢"]//namesA.removeAtIndex(0)namesA[0] = "阿助"println("namesA = \(namesA)")//var namesB = ["路飛", "索隆", "娜美", 32]//namesB.append("香吉士"))
字典
//字典 在Swift中 要求所有的key是同一類型 所有的value是同一類型var person: Dictionary<String, String> = ["name":"路飛", "sex":"男"]println("person = \(person)")person["habit"] = "足球"println("person = \(person)")//person["key"] = newValue,如果key已經存在,那麼進行的是替換操作 如果key不存在,那麼添加了一組索引值person["name"] = "索隆"println("person = \(person)")person.updateValue("娜美", forKey:"name") //println("person = \(person)")let oldValue = person.updateValue("喬巴", forKey:"name") //使用updateValue(value, forKey:key) 進行字典裡面元素更新的時候,會返回被替換掉的舊值println("person = \(person)\n oldValue = \(oldValue)")let personA = ["name":"羅賓", "sex":"女"]//personA["name"] = "luobin"//數組和字典的可變和不可變通過var和let來進行判定,不同的地方是如果數組聲明為let, 那麼不可以添加和刪除元素,但是可以更改.通過let聲明的字典,既不可以添加刪除,也不可以更改for name in names{//數組的遍曆, for in println("name = \(name)")}//數組的遍曆,並且得到相應元素的下標for (index, name) in enumerate(names){ println("index = \(index), name = \(name)")}//字典的遍曆,得到key和value (字典裡列印的東西是無序的)for (key, value) in person { println("key = \(key), value = \(value)")}
//控制語句var isNumber:Bool = truevar aNumber = 3 ; var bNumber = 5 // 如果想在一行有多個語句,那麼需要用";" 進行分割//在Swift中, if語句的判斷條件只能是Bool類型if isNumber { println("aNumber = \(aNumber)")}for var i = 0; i < 10; i++ { println("i = \(i)")}for j in 0..9 { // ".."表示的是一個區間,包括左邊的值,但是不包括右邊的值 println("j = \(j)")}for k in 0..9 { //".."既包括左邊的值, 又包括右邊的值 println("k = \(k)")}
//switchvar a = 11switch a {case 1: println("a = 1")case 11: println("a = 11") fallthrough // 強制執行下個case語句default: println("a = other number")}//case語句可以是個範圍, 並且這個範圍是可以交叉的, 但是只執行第一個滿足case條件的語句switch a {case 1..20 where a == 12: //可以進行雙重判定, 使用 where a == 12 println("這是一個個位元")case 11..100: println("這是一個十位元")default: println("其他數字")}var point = (4, 0)switch point {case(0, 0): println("原點")case(let x, 0): //使用(let x, 0) 可以取出元組裡面對應位置的元素 println("X軸, x = \(x)")case(0, _): // "_"表示忽略元組裡面相應位置的元素 println("Y軸")default: println("象限內")}