字串String
1.聲明
// Null 字元串let emptyString = ""let anatherString = String()if emptyString.isEmpty { print("空的,我擦")}
2.逸出字元
/// 逸出字元\0(Null 字元)、\\(反斜線)、\t(水平定位字元)、\n(分行符號)、\r(斷行符號符)、\"(雙引號)、\'(單引號)。/// Unicode 標量,寫成\u{n}(u為小寫),其中n為任意的一到八位十六進位數。let windoe = "\"我要成為海賊王的男人\"- 路飛"let dorllar = "\u{24}" "$"let blackHeart = "\u{2665}" ""let sparklingHeart = "\u{1F496}" "紅色愛心"
3.字串拼接
// 可變和不可變字串var varString = "MKJ"varString += "CJJ"//let letString = "MKJ111"//letString += "CJJ"//在 Objective-C 和 Cocoa 中,您通過選擇兩個不同的類(NSString和NSMutableString)來指定該字串是否可以被修改,Swift 中的字串是否可以修改僅通過定義的是變數還是常量來決定,實現了多種類型可變性操作的統一。// Swift 的String類型表示特定序列的Character(字元) 類型值的集合。 每一個字元值代表一個 Unicode 字元。 您可利用for-in迴圈來遍曆字串中的每一個字元 這裡和之前的不同需要調用characters進行遍曆for charater in "he is a ��".characters { print(charater)}// 計算字串的數量let countingString = "ndsd dsfdgg kjjkfdfdlf;"print("contingString is number of \(countingString.characters.count) charaters")// 字串拼接let string1 = "111"let string2 = "222"var string3 = string1 + string2let charater1 : Character = "?"string3.append(charater1)// 字串格式化 \()let num1 = 3print("\(num1) * 2.5 是 \(Double(num1) * 2.5)")/* h e i s a �� contingString is number of 23 charaters 3 * 2.5 是 7.5 */
4.字串比較和大小寫
// 字串比較 相等 直接用==let quato = "一樣的"let quate = "一樣的"if quate == quato { print("一樣了")}// 和OC一樣,判斷前尾碼用hasPrefix 和 hasSuffix// 字串大小寫let normal = "Could help me please"let upString = normal.uppercased()let downString = normal.lowercased()
數組Array
1.聲明
// 1.構造// shoppingList變數被聲明為“字串實值型別的數組“,記作[String]。 因為這個數組被規定只有String一種資料結構,所以只有String類型可以在其中被存取var shoppingList:[String] = ["milk","apple"]// swift可以自動推斷類型 因此可以不用再數組申明之
2.擷取數量和判斷是否為空白
// 2.擷取數量/判斷是否為空白print("shopping list has \(shoppingList.count) items")if shoppingList.isEmpty { print("array is empty")}
3.數組訪問,添加刪除
// 3.資料的添加刪除和訪問shoppingList.append("reveal")shoppingList += ["photo shop","Xmind"]var item = shoppingList[0]// 可以這樣直接穿插擴充shoppingList[2...3] = ["QQ","Wechat","MTJF"]print(shoppingList)shoppingList.removeLast()shoppingList.removeFirst()print(shoppingList)
4.遍曆和枚舉遍曆
// 4.遍曆for item in shoppingList { print(item)}// 需要所有資訊/* 第1個是apple (offset: 0, element: "apple") 第2個是QQ (offset: 1, element: "QQ") 第3個是Wechat (offset: 2, element: "Wechat") 第4個是MTJF (offset: 3, element: "MTJF")*/for value in shoppingList.enumerated() { print("第\(value.offset + 1)個是\(value.element)") print(value)}
5.repeat建立數組
// 5.構建資料var intArr = [Int]()print("array of intArr has elements \(intArr.count) items")// 重複建立var repeatArray = [Double](repeatElement(3.0, count: 5))print(repeatArray)
集合Set
1.無序排列
// Set集合 他是無序的var setMusics:Set<String> = ["JJ","KK","LL","OO"]for item in setMusics { print(item)}print("\n")/* OO JJ KK LL */// 有序輸出for item in setMusics.sorted() { print(item)}/* JJ KK LL OO */
2.基本操作
let odd: Set = [1,3,5,7,9]let even: Set = [0,2,4,6,8]let deltaD: Set = [1,2,7,8]// union 兩個集合所有元素建立一個新的集合print(odd.union(even).sorted())// intersect 交集print(odd.intersection(deltaD).sorted())// exclusiveOr 反交集print(odd.symmetricDifference(deltaD).sorted())// subtract 調用序列中和另一序列中除去相交部分建立一個新的集合var aaa:Set = [1,2,3,4,5]let bbb:Set = [2,3,4]print(aaa.subtracting(bbb).sorted())/* [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 7] [2, 3, 5, 8, 9] [1, 5] */
字典Dictionary
1.基本上和OC的一樣的 聲明如下
// 字典,這個和OC基本上一樣的// 建立var nameDict = Dictionary<Int,String>()
2.基本操作 更新以及建立
// 給字典更新或者建立值有下面兩種,一種直接存取key 還有一種是通過updateValue,找不到的時候會有反饋,進下一波操作,但是實際上有則更新,沒有則添加nameDict[1] = "mkj"nameDict[2] = "cjj"print(nameDict)// 下面的方法會返回更新之前的原值if let value = nameDict.updateValue("HEHE", forKey: 2) { print(nameDict[2]!) print(value)}// 如果存在,就和上面一樣返回原值,if判斷成立,更新舊值,但是沒有的情況下返回就是nil,不能複製給let,因此if失敗,同樣添加新的key value,但是if走失敗的邏輯if let value = nameDict.updateValue("MEILE", forKey: 0) { print(nameDict[0]!)}else{ print("不存在")}print(nameDict)// removeValueForKey 同理/* [2: "cjj", 1: "mkj"] HEHE cjj 不存在 [2: "HEHE", 0: "MEILE", 1: "mkj"] */