博主的第一次决定奉献给Swift,在之前一直使用OC,虽然知道Swift各种优势但是就是不想学习,一方面是Swift的不成熟性和第三方的不完整性,例外一方面是自己太懒了,公司也没有要用Swift开发的迹象。但是Swift4.0出来后,深切的感觉到Swift必要性,因为博主的朋友们的公司新项目都是用Swift进行开发,那么接下来开始Swift的学习吧!!!
Swift的自我感觉有用地方:
1.可选类型
Swift使用Optional处理数据缺失,可选表示"那儿有一个值,并且它等于 x "或者"那儿没有值"。简单就是处理为空的数据。有2种声明方式(表示要么optionalInt不存在是nil,存在则是想要的值):
var optionalInt : Int? = 100
var optionalIntt : Optional = 100
optionalInt的解析可以直接使用,但是打印出来并不是我们想要的值:
Optional(100)
我们可以使用!强制解析,注意:使用!来获取一个不存在的可选值会导致运行时错误。使用!来强制解析值之前,一定要确定可选包含一个非nil的值。因此我们常用if判断一下
if optionalIntt != nil {
print(optionalIntt)
} else {
print("optionIntt是个空字符串")
}
print(optionalIntt)
目前我没发现可选类型有什么用。等后面再进行解决。。
2.运算符
1.Swift运算符和OC差距不大,没有了++和--,可使用+=和-=来进行代替
2.区间运算符:(1)闭区间运算符 :1...5(包含12345)
(2)半开区间运算符:1..<5(包含1234)
3.容器
1.数组:Swift的数组不同于OC:(1)相同的值可以出现在数组不同的位置(2)数组会检测元素类型,类型不同会报错(3)没有可变数组和不可变数组,都可以进行增删改成
【1】创建一个数组
var firstArr : [Int] = []
【2】增
firstArr.append(1)//添加int 1
firstArr += [2]//添加int 2
【3】删除
someArr.remove(at: 1)
【4】改
firstArr[1] = 20
【5】合并2个数组
print(firstArr + someArr)
【6】遍历数组
for item in allArr {
print("值为\(item)" + "ok")
}
for (index, item) in someArr.enumerated() {
print("\(index) = \(item)")
}
2.字典,Swift的字典和OC差不多,但是没有可变数组的说法
【1】创建一个数组
var firstDic = [String: Int]()
【2】增,改:字典的添加是直接赋值,如果key存在则是更改,如果key不存在则是添加
firstDic["one"] = 10//添加元素
firstDic["two"] = 20//添加元素
firstDic["one"] = 30//更改key=one的元素
【3】删除
firstDic.removeValue(forKey: "one")
【4】遍历字典
for (key, value) in firstDic {//返回的是key和value
print("\(key):\(value)")
}
for (key, value) in firstDic.enumerated() {//此时的key是索引,value是 (key, value)
print("\(key):\(value)")
}
【5】获取key和Value数组
for item in firstDic.keys {
print(item)
}
for item in firstDic.values {
print(item)
}