美文网首页
100day-swiftUI-03

100day-swiftUI-03

作者: Orely | 来源:发表于2022-06-24 18:07 被阅读0次

    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<Int>()
    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<Array<...>>,不要惊讶地发现它不再只是一个简单的数组!
    在赋给新的数组的时候,它会自动去除包装的一层。

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

    • Dictionary

    创建一个字典

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

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

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

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

    • Set

    创建一个集合

    var people = Set<String>()
    // 这里要注意下,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

          本文链接:https://www.haomeiwen.com/subject/dbgzprtx.html