100day-swiftUI-03

Joseph Campbell once said, “computers are like Old Testament gods: lots of rules and no mercy.”

好喜欢这句话。计算机像是旧时代的神,全部都是规则,没有仁慈。一切都是按指定的规则运行。所以,编程这件事,不就是在造神嘛? 是不是有点热血沸腾,又想敲代码啦~

03 - Array Dictionary Set Enums

  • Array

创建一个数组

var scores = Array()
var albums = [String]()
var albums2 = ["Folklore"]

数组添加的数据类型需要是同一类型的。使用append方法添加。

var temperatures = [25.3, 28.2, 26.4]
var intTemp : Int = 0
// 不能添加不同类型
// temperatures.append("Chris")
// temperatures.append(intTemp)
temperatures.append(1) // 1会被自动转成Double型

获取数组元素个数:.count
删除数组指定元素:remove(at:)
删除全部元素removeAll()
判断数组是否包含某个元素contains()
对数组元素进行排序sorted(),将返回一个新的数组
对数组元素进行反转reversed(),将返回一个新的数组

Tips:
当反转一个数组的时候,并不需要真的反转整个数组。所以swift将数组包装了一层ReversedCollection>,不要惊讶地发现它不再只是一个简单的数组!
在赋给新的数组的时候,它会自动去除包装的一层。

使用这种会产生新的数组的方法的时候,ed会产生一个新的数组,不加ed会直接在原数组上修改。例如sort()sorted()

  • Dictionary

创建一个字典

var heights = [String: Int]()
let olympics = [
    2012: "London"
]

字典取值可以加一个默认值来拆包。

print(olympics[2012, default: "Unknown"])

获取字典元素个数:.count
删除全部元素:removeAll()

  • Set

创建一个集合

var people = Set()
// 这里要注意下,Set([...]) 中的"[ ]"
let people2 = Set(["Denzel Washington", "Tom Cruise", "Nicolas Cage", "Samuel L Jackson"])

将集合的元素排序后返回数组:sorted()
添加一个元素:insert
获取集合元素个数:.count
判断是否包含某个元素:contains()

Tips:集合相对于数组有一个特别大的优点,那就是查找速度特别快。不管集合中的元素有多大,contains()方法能很快的得出结果。数组会遍历元素。

  • Enum

定义一个枚举类型的基本写法

enum Weekday {
    case monday
    case tuesday
    case wednesday
    case thursday
    case friday
}

或者,可以快速定义:

enum Weekday {
    case monday, tuesday, wednesday, thursday, friday
}

Tips: 许多语言没有枚举也可以正常运行。对于枚举的存在,应该是更好的避免书写错误。比如,可以使用"monday", "tuesday","wednesday", "thursday", "friday"来区分类型,但是在使用的时候,很容易拼写错误,或者忘记对应的类型。

你可能感兴趣的:(100day-swiftUI-03)