Swift学习笔记01
一、常量&变量
- 常量的使用注意
- 优先使用常量
- 常量的本质:保存的是内存地址,不可更改,但可以通过内存地址拿到对应的对象,修改对象的属性.
二、数据类型
- 整型与浮点型
- 整型:
Int
- 浮点型:
Double
- 类型推导
- 如果定义一个标识符时,有直接赋值, 那么可以通过赋值的类型推导出标识符的类型.
- 基本运算
- 相同类型才可以进行运算(没有隐式转换)
三、逻辑分支
- if的使用
- if后面的()可以省略
- 没有非0即真的概念,必须有明确的Bool值(flase/true)
- 三目运算符
- 与OC使用一致
guard
的使用
1 | guard 条件语句 else{ |
- switch使用
- ()可以省略
- case结束后可以省略break
- case可以判断多个条件
- 如果希望case有穿透, 加
fallThrough
- 特殊用法:
- 判断浮点型
- 判断字符串
- 判断区间类型
四、循环
- for循环
方式一
1
2
3for var i= 0; i< 10; i++ {
print(i)
}方式二
1
2
3for i 0..<10 {
prin(i)
}方式三
1
2
3for _ 0..<10 {
}
- while/dowhile循环
- while后面() 可以省略
- 没有非0即真
五、字符串
- 定义字符串
- 定义可变字符串
var str = "string"
- 定义不可变字符串
let str = "string"
- 获取字符串长度
str.characters.count
- 遍历字符串
1 | for c in str.characters { |
- 字符串拼接
- 两个字符串之间:
str1 + str2
- 字符串与标识符之间:
\(age)
- 字符串格式化:
String(format:"%d %d",\ argments:[age1,age2])
- 字符串截取
将String类型转成NSString string as NSString
1
2
3
4
5let urlString = "www.yuxiang.ren"
let header = (urlString as NSString).substringToIndex(3)
let footer = (urlString as NSString).substringFromIndex(10)
let range = NSMakeRange(4, 5)
let middle = (urlString as NSString).substringWithRange(range)swift的截取方式
1
2
3
4
5
6
7
8let toIndex = urlString.startIndex.advancedBy(3)
let header1 = urlString.substringToIndex(toIndex)
let fromIndex = urlString.endIndex.advancedBy(-3)
let footer1 = urlString.substringFromIndex(fromIndex)
let range1 = Range(start: toIndex.advancedBy(1), end: fromIndex.advancedBy(-1))
let middle1 = urlString.substringWithRange(range1)
六、数组
1. 定义数组
- 不可变数组:
let arr = ["www", "shlyren"]
- 可遍数组:
var arrM = [String]()
- 遍历数组
for value in arr{print(valur)}
for (index, value) in array.enumerate() {print(index); print(value)}
- 数组的合并
- 相同类型的数组可以现价合并
七、字典
- 定义字典
- 不可变字典:
let dict = ["name" : "ren"]
- 可变字典:
var dictM = [String : NSObject]()
- 遍历字典
for key in dict.keys {}
for value in dict.values {}
for (key, value) in dict {}
- 合并字典
- 相同类型之间的字典也不可以合并
八 、元组
- 使用元组定义数组
let info = (“Not Found”, 404) info.0 info.1
let info = (errorInfo : “Not Found”, errorCode : 404) info.errorInfoinfo.errorCode
let (errorInfo, errorCode) = (“Not Found”, 404)
九、可选类型
- 定义可选类型
var name : Optional<String> = nil
var name : String? = nil
- 给可选类型赋值
name = “renyuxaing”
- 从可选类型取值
name!
强制解包
- 可选类型注意: 如果可选类型中没有值,强制解包会崩溃
- 可选绑定
if let tempName = name {}
- 判断name是否有值
- 如果有值,对name强制解包并赋值给tempName
- 简单写法
if let name = name {}