swift (二)

來源:互聯網
上載者:User

標籤:swift   println   var   賦值   代碼   

直接上代碼:
// 運算子// 一元運算子// 1、負號運算子var number1 = 10.0var number2 = -number1println((number2))// 2、正號運算子// 正號運算不做任何操作var number3 = +number2println((number3))// eg:b = a++ 相當於 a 先賦值再完成自增,而 b = ++a 相當於 a 先完成自增,再去賦值var number4 = number1++number4++println((number4))number4--println((number4))// 二元運算子// 1、賦值運算子// 1.1 在 swift 當中,指派陳述式沒有任何傳回值,不可以跟 if - else 相結合let a:Double = 1.0// 2、算術運算子// 2.1、取餘運算子// 在 swift 當中,與 C 語言中的取餘運算子有些不同,swift 中的取餘運算子的左右兩側可以為小數,這也是 swift 有所改進的地方var quyuNumber = 10.0 % 3.0println((quyuNumber))// 3、組合賦值運算子var zuheNumber = 10zuheNumber += 10println((zuheNumber))// 4、比較子// 5、邏輯運算子// 6、區間運算子  <<<<<< swift 新增的運算子let aa = 1let bb = 5// 6.1、全閉區間for qujianNumber in aa...bb {    println((qujianNumber))}// 6.2、半開半閉15..<25for qujianNumber2 in 15 ..< 25 {    println((qujianNumber2))}// 7、空合運算子  <<<<<< swift 新增的運算子// 7.1 空合運算子 ?? 前面必須是可選類型的// 7.2 空合運算子 ?? 前後的類型必須一致// ! 表示這個變數是可選類型的,但是這個變數是一定有值的// ? 表示這個變數是可選類型的,但是這個變數不一定有值的var optionalNumber:Int! = 10println(optionalNumber!)// ?? 如果 optionalNumber 不為 空 則返回 optionalNumber的值;如果 optionalNumber 為 空,則返回 ??後面的值。let kongheNumber = optionalNumber ?? 20println((kongheNumber))// 三元運算子// 形式結構:a > b ? a : b// 字串// 1、字串的字面量 eg:"cacavca"字面量var string1 = "cacavca"var string2 = "wang" + "zhen" + "gang"println((string1))println((string2))// 逸出字元,類比 C 語言eg, \t  \n  \`  \``var string3 = "\"wang\""        /// 加 雙引號println(string3)var string4 = "\‘zhengang\‘"    /// 加 單引號println(string4)// 2、swift 中的字串和 OC 中的字串的區別// 2.1、 沒有可變類型和不可變類型之分,在 swift 中,字串到底可變不可變,取決於聲明變數的類型,如果定義的是 let 就是不可變,假如定義的是 var 就是可變// 2.2、 swift 中的字串是實值型別,而 OC 當中,不加特殊聲明的話是參考型別。不用擔心記憶體問題,swift 已經做了最佳化。var appendingStr1 = "wangzhigang"var appendingStr2 = appendingStr1appendingStr2 += "shuai"println((appendingStr1))println((appendingStr2))// 2.3、 swift 中 String 類型 和 OC 中 NSString 做了完美的對接,換句話說,就是 swiftString 可以使用 NSString 的方法。// 字串的初始化var initString:String = String(appendingStr1 + "age")println((initString))// 字串拼接, + 可以進行字串拼接,注意要拼接的變數必須是可變的。initString += "hgkehg"//initString.append("c")println((initString))// 字串進行大小寫轉換var changeString1 = "good boys"// 改成大寫var changeString2 = changeString1.uppercaseStringprintln((changeString2))// 改成小寫println((changeString2.lowercaseString))// 首字母大寫println((changeString2.capitalizedString))// 字串插值// 在 swift 輸出語句中沒有格式化預留位置,想要實現這樣的效果,我們要用到字串插值格式 :"\()"var insertNumber = 18println("insertNumber = \(insertNumber)")// swift 中的集合// 1、數組// 2、字典// 3、set (瞭解)// 區別:// 1、在 swift 中的集合類也都是實值型別,而 OC 當中的是參考型別;// 2、在 swift 中,也是使用引用計數的概念來管理記憶體的,但是引用計數只適用於物件類型,實值型別不需要管理;// 3、swift 中,引用計數管理記憶體的方法與 OC 當中引用計數管理記憶體的方法,還是不同的,(見後面內容);// 4、在 swift 中數組是可以存放任意類型,但是 OC 中,只能存放物件類型。// 1、 Array// 1.1、 swift 中,Array 也沒有可變和不可變之分。而是取決於用什麼關鍵字類修飾, var 就是可變的 , let 就是不可變的// 1.2、 使用字面量來為一個數組賦值// 當我們實現聲明數組中元素的類型,內部的元素類型必須一致var array = ["wang", "zhen", 9]println((array))// 數組增加元素// 1、調用 append 方法,當我們調用 append 方法進行元素添加時,是添加到數組最後面。array.append("wang")println((array))// 2、調用 += 添加元素array += ["wzg1", "wzg2"]println((array))// 3、調用 insert 方法,把元素插入到指定位置array.insert("wzg3", atIndex: 0)println((array))// 4、數組刪除元素//    調用 removeAtIndex 方法進行刪除array.removeAtIndex(0)println(array)// 5、改變數組中的元素// 1、通過下標來更改元素array[0] = "youmo"println(array)// 2、利用下面的方法,不及可以修改,而且可以刪除元素。array[0...3] = ["1", "2", "3"]println(array)// 6、數組查詢// 利用 for-in 來進行數組遍曆for value in array {    println("value = \(value)")}// 使用全域 enumerate 函數返回一個由每一個資料項目索引值和資料值組成的元組for (index, value) in enumerate(array) {    println("\(index):\(value)")}// 數組的初始化,聲明儲存固定類型的數組// 1、var initArray1:[String] = [String]() // 完成寫法var initArray2:[String] = [String](count: 3, repeatedValue: "wang")println(initArray2)// 2、var initArray3:Array<String> = Array(count: 4, repeatedValue: "zhen")println((initArray3))// 3、使用構造方法建立的是由一個特定資料類型構成的數組// 字典// 1、使用字面量來給字典進行賦值var dictionary = ["boy":"wang", "age":"12", "gender":"man"]println(dictionary)println(dictionary["age"])// 增// 使用下標增加索引值對dictionary["girl"] = "shiyingying"println((dictionary))// 刪// 調用 removeValueForKey 方法進行刪除dictionary.removeValueForKey("age")println("delete : \(dictionary)")// 改// 1、使用鍵,修改鍵對應的值dictionary["girl"] = "liujingran"println((dictionary))// 2、使用 updateValue 方法進行修改// updateValue 方法可以進行修改,也可以進行添加索引值對,當填入的鍵存在時,就會進行資料更新,把鍵對應的老值返回出來,當鍵不存在時,就會進行添加,返回是 nil 。let returnValue = dictionary.updateValue("18", forKey: "age")println("returnValue = \(returnValue), dictionary = \(dictionary)")let returnValue2 = dictionary.updateValue("19", forKey: "class")println("returnValue2 = \(returnValue2), dictionary = \(dictionary)")// 查(遍曆字典)for (key , value) in dictionary {    println("key = \(key)      value = \(value)")}// 字典初始化的方式也有兩種// 使用字典初始化方式進行建立的是固定索引值類型的字典// 1、var initDiction1 : [String : String] = [String : String]()// 2、var initDiction2 : Dictionary<String, String> = Dictionary()// 控制流程// 1、for-in 迴圈for value in 1...10 {    println(value)}// 當我們不需要使用區間的值的時候,我們可以使用‘_’告訴系統,相當於 while()for _ in 1...10 {    println("wangzhengang")}// 2、for 迴圈for var index = 0 ; index < 10 ; index++ {    println("index = \(index)")}// while 迴圈var whileNumber = 0while whileNumber < 10 {    println("whileNumber = \(whileNumber)")    whileNumber++;}// do-while 迴圈do {    println("111112")}while(false)// if-else 語句var houValue = 20if houValue <= 21 {    println("小於等於21")}else {    println("大於21")}// switch-case// 1、 在 swift 當中是沒有貫穿的,只會執行滿足條件的語句,不用加 break 也不會貫穿// 2、 在 swift 當中每一個 case 分支中都必須有一個語句,假如真不想寫,可以加 break ,通過編譯// 3、 在 swift 當中 case 可以加多個條件// 4、 可以使用 fallthrough 實現貫穿// 5、 在 swift 當中, switch-case 可以進行值得綁定// 6、 在 swift 中,switch-case 可以進行區間匹配var switchNumber = 12switch switchNumber {case 2, 3, 6, 10:    breakcase 11:    println("11")case 12, 123:    println("I am 12")    fallthroughcase 13:    println("I am 13")default :    println("qita")}// 5、 在 swift 當中, switch-case 可以進行值得綁定var (x, y) = (10, 0)switch (x, y) {case (let xValue, 0):    println(xValue)case (0, let yValue):    println(yValue)default:    println("others")}// 6、 在 swift 中,switch-case 可以進行區間匹配var domianNumber = 50switch domianNumber {case 0...10:    println("幾塊錢,窮逼")case 11...100:    println("幾十塊,也挺窮")default :    println("土豪!")}// 控制流程中,我們會遇到的關鍵字 : break, continue, fallthrough// break 在迴圈當中,跟 C 語言的文法規則一樣,用來結束整個迴圈;// continue 在迴圈當中, 跟 C 語言的文法規則一樣,用來結束本次迴圈;// 標籤語句// 當我們遇到的多個迴圈嵌套的時候,我們根據需求,想要關掉某個迴圈,此時我們就要使用標籤語句,用來區別不同的迴圈,標籤語句的定義文法:name : 寫到想要標識的迴圈前面wang: while true {    for var labelNumber = 0; labelNumber < 100 ; labelNumber++ {        if labelNumber == 5 {            break wang        }        println("labelNumber = \(labelNumber)")    }}

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

swift (二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.