Swift中的数组
在Swift当中数组是Array类型的泛型集合,数组内部元素可以直接放基本数据类型,数组内部元素类型一致。
Swift中数组的定义
let arr : Array<String> = ["陈冠希","张柏芝","谢霆锋"]
let arr01 : [String] = ["陈冠希","张柏芝","谢霆锋"]
let arr02 = ["陈冠希","张柏芝","谢霆锋"]
var arrM : Array<String> = Array()
var arrM01 : [String] = Array()
var arrM02 = Array<String>()
var arrM03 = [String]()
Swift中数组的操作
var arrayM = [String]()
arrayM.append("小泽玛利亚")
arrayM.append("武藤兰")
arrayM.append("苍井空")
arrayM.remove(at: 1)
arrayM[0] = "漩涡鸣人"
let item01 = arrayM.last
let item02 = arrayM[0]
Swift中数组的遍历
// 3数组的遍历
for i in 0..<arrayM.count {
print(arrayM[i])
}
for item in arrayM {
print(item)
}
for (index, item) in arrayM.enumerated() {
print(index,item)
}
Swift中数组的合并
let arr1 = ["山中井野","奈良鹿丸","秋道丁次"]
let arr2 = ["犬冢牙","日向雏田","油女志乃"]
let arr3 = arr1 + arr2
let arr4 = [16,22,33]
Swift中的字典
在Swift中字典是Dictionary类型,由键集合(key)和值集合(value)组成,键和值是成对出现的,值可重复,键不可重复,通过键值访问字典中的元素,字典也是一个泛型集合。
Swift中字典的定义
let dic_1 : Dictionary<String, Any> = ["name":"本杰明·富兰克林","age":18]
let dic_2 : [String : Any] = ["name":"本杰明·富兰克林","age":18]
let dic_3 = ["name":"本杰明·富兰克林","age":18] as [String : Any]
let dic_4 = ["ABC" : 16, "123" : 34]
let dic_5 = ["ABC" : "abc", "123" : "321"]
var dic_01 : [String : Any] = Dictionary()
var dic_02 : Dictionary<String, Any> = Dictionary()
var dic_03 = Dictionary<String, Any>()
var dic_04 = [String : Any]()
var dic_05 = Dictionary() as [String : Any]
Swift中字典的操作
var dictM = [String : Any]()
dictM["name"] = "张一丰"
dictM["age"] = 18
dictM["height"] = 1.88
dictM["gender"] = "男"
let dicIndex = dictM.index(forKey: "age")
dictM.remove(at: dicIndex!)
dictM["name"] = "程冠希"
dictM.updateValue("女", forKey: "gender")
print(dictM["name"] as! String)
Swift中字典的遍历
for key in dictM.keys {
}
for value in dictM.values {
}
for (key, value) in dictM {
}
Swift中字典的合并
var dict_one = ["name":"陈冠希","height":1.88] as [String : Any]
let dict_two = ["age":18,"score":59.9]
for key in dict_two.keys {
dict_one[key] = dict_two[key]
}
print(dict_one)
Swift中元组的使用
元组是Swift中特有的数据类型,OC中没有;跟数组和字典一样,元组也可以用来定义一组数据,组成元组类型的数据可以称为元素。
Swift中元组与数组和字典的不同使用
let infoArray = ["CHW",18,1.88] as [Any]
let infoArray01 : [Any] = ["CHW",18,1.88]
let name = infoArray[0] as! String
print(name.characters.count)
let infoDict : [String : Any] = ["name":"CHW", "age":18, "height":1.88]
let dictName = infoDict["name"] as! String
print(dictName.characters.count)
let infoTuple = ("CHW", 18, 1.88)
print(infoTuple.0.characters.count)
let infoTuple_03 = (nameTp : "CHW", ageTp : 18, heightTp : 1.88)
print(infoTuple_03.nameTp)
print(infoTuple_03.nameTp.characters.count)
print(infoTuple_03.heightTp)
let (nameT, ageT, heightT) = ("CHW", 18, 18.8)
print(nameT)
print(ageT)
print(heightT)
Swift中的可选类型
可选类型是Swift中特有的类型,目的在于判断值是否为空,给空值加了一层判断,使我们的程序更加的安全;可选类型的根源是一个枚举类型,里面有None和Some两种类型,其实nil就是Optional.None,非nil就是Optional.Some,然后通过Some<T>包装原始值,也就是在使用可选类型时为什么要拆包(从枚举类型中取出原始值)的原因。
Swift中可选类型的使用
import UIKit
class Person : NSObject
{
var name : Optional<String> = nil
var age : Int? = nil
}
let p = Person()
p.name = Optional("CHW")
p.age = Optional(18)
p.name = "CHW"
p.age = 18
print(p.name!)
print(p.age!)
if let name = p.name {
print("有值 p.name = \(name)")
}
Swift中可选类型的使用场景
import UIKit
let num1 : String = "123"
let num_01 = Int(num1)
let num2 : String = "abc"
let num_02 = Int(num2)
let pathStr = Bundle.main.path(forResource: "", ofType: nil)
let urlStr = "https://www.baidu.com"
let url = URL(string: urlStr)
let dict : [String : Any] = ["name":"CHW", "age":18, "height":1.88]
let item = dict["name"]
Swift中as?和as!的使用
import UIKit
let dict : [String : Any] = ["name":"CHW", "age":18, "height":1.88]
let name = dict["name"]
if let name = name as? String {
print(name)
}
let name_01 = dict["name"] as! String