swift 学习笔记(1)

xiaoxiao2021-02-27  416

func demo() { let oName: String? = "张三" let oAge: Int? = 10 if oName != nil && oAge != nil { print(oName! + String(oAge!)) } } // if let / var 连用 判断对象的值是否为nil if let name = oName, age = oAge { //进入分支后 一定有值,不需要解包 print(name + String(age)) } // guard let 守护一定有值,如果没有直接返回 刚好与if let 相反 func demo2() { let oName: String? = "张三" let oAge: Int? = 10 guard let name = oName, age = oAge else { print("姓名或者年龄为nil") return } } // 小技巧 func demo3(name: String?, age: Int?) { //guard let & if let guard let name = name, age = age else { print("姓名火年龄为nil") return } } // switch func demo4(num: String) { swith: num { case "10","9": print("我") break case "11": print("你") break default: print("其他") break } } // 传统的 for 循环已被替代 func demo() { for var i = 0; i < 10; i += 1 { } } //字符串的遍历 func demo() { //NSString 不支持以下遍历 let str: String = "我要飞得更高" for c in str.characters { print(c) } } //字符串长度 func demo() { let str: "hello world你好" // 1> print(str.lengthOfBytes(using: .utf8)) // 2> 推荐使用 print(str.characters.count) // 3> let ocStr = str as NSString print(ocStr.length) } //字符串拼接 func demo() { let name = "小王" let age = 10 let title: String = "BOSS" let point = CGPoint(x: 100, y: 100) let str = "\(name) \(age) \(title ?? "") \(point)" print(str) } //格式化 func demo() { let h = 8 let m = 9 let s = 6 let dataStr = String(format: "d:d:d", h, m, s) print(dataStr) } //数组的定义 func demo() { let array = ["张三","李四","小杨"] print(array) } //数组遍历 func demo() { let array = ["张三","李四","小杨"] // 1> 按下标遍历 for i in 0..<array.count { print(array[i]) } // 2> for in for s in array { print(s) } // 3> enum block 同时遍历下标和内容 for e in array.enumerated() { print(e)//元组(0, 张三) print("\(e.offset) \(e.element)")// 0 张三 } // 4> for (n, s) in array.enumerated() { print("\(n) \(s)")//0 张三 } // 5> 反序 for s in array.reversed() { print(s) } // 6> 反序以及下标 注意顺序 先枚举再反序 for (n, s) in array.enumerated().reversed() { print("\(n) \(s)") } } //数组的增删改 容量 func demo() { var array = ["张三","李四","小杨"] array.append("老王") print(array) //修改下标 array[0] = "小张三" print(array) //数组越界 array[5] = "xxx" //删除 array.remove(at: 3) //删除全部并保留空间(容量) array.removeAll(keepingCapacity: try) } //数组合并 两个数组的类型必须一致 func demo() { var array = ["张三","李四","小杨"] var array2 = ["王五","小宋"] array += array2 print(array) } func demo2() { var array1: [NSObject] = ["张三","李四","小杨"] var array2 = ["10","20",100] array += array2 print(array) } //字典 func demo() { // [KEY: VALUE] -> [String : NSObject] let dict = ["name": "张", "age": 18] print(dict) let array: [[String: AnyObject]] = [ ["name": "张", "age": 18], ["name": "李""age": 20] ] } //字典的增删改 func demo() { let dict = ["name": "张", "age": 18] //增 dict["title"] = "大哥" //改 dict["name"] = "大西瓜" //删 dict.removeValue(forKey: "age") print(dict) } //字典遍历 func demo() { let dict = ["name": "张", "age": 18, "title": "老板"] for e in dict { print("\(e.key) \(e.value)") } for (k, v) in dict { print("\(k) \(v)") } } //字典合并 func demo() { let dict1 = ["name": "张", "age": 18, "title": "老板"] let dict2 = ["name": "李", "age": 18, "title": "员工"] //字典不能直接相加 for e in dict2 { dict1[e.key] = dict2[e.key] } }
转载请注明原文地址: https://www.6miu.com/read-1842.html

最新回复(0)