p6 xcode扩展练习
-
// MARK:
// TODO:
//FIXME:
p7 变量和常量
- swift中,不存在基本数据类型,都是结构体struct
- swift中,极少使用直接指定类型,通常都是自动推导
p8 可选项的概念
- 可选项用
?
- nil不是任何数据类型,不能直接计算
-
!
强行解包 — 从可选值中强行获取对应的非空值。必须为!
负责,尽量少用
p9
- let y:Int? // 定义常量,没有初始化,没有默认值。初始化的工作能做一次
- var x:Int? // var 的可选值默认为nil
p10
p11
-
??
简单的三目,有值使用值,每值使用??
后面的默认值
-
??
的使用优先级很低,建议用()
包起来
p12
-
if let
连用,判断对象的值是否为nil
-
{}
内一定有值,不需要解包
-
if var
连用,可以更改值
p13
-
guard let
与if let
用途恰好相反,但是它可以节省一层分支
guard let name = name else { print(nil); return }
// 接着执行name存在的操作
p18
-
switch
所有的分支至少需要一条指令,如果不执行任何内容,才使用break
p20
p21
- NSString 不支持遍历
- str.characters.count 返回字符个数
- str as NSString ===>>> str.length
p22
- 拼接的时候注意可选项(a ?? "")
- 格式化字符串
String(format: "%%2d:%%2d:%%2d", h, m, s)
p23
- 取子字符串一般采用NSString作为中转, 这样比较容易理解
let ocStr = str as NSString
ocStr.substring(with: NSMakeRange(2, 3))
- str.startIndex // 0
- str.endIndex // str.length
p25
for (index, item) in array.enumerated() {}
for (index, item) in array.enumerated().reversed() {} // 反序
p26
- array.append()
- array.remove(at: 2)
- array.removeAll(keepingCapacity: true)
- 如果数组指定了容量,capacity可以提高一点效率
网友评论