Array和Dictionary作为常量时需要注意的地方

来源:互联网 发布:美国白银数据公布 编辑:程序博客网 时间:2024/05/17 09:08

将Array和Dictionary作为常量使用的时候需要注意下面一些问题

let a = [1,2,3]

a[0] = 5 // 这里是没有问题的,常量Array在修改现有数据是ok的

a.append(1) // 但是不能对数组进行扩展.

Dictionary与Array有所不同的是

let d = ["1":1]

d["1"] = 2  // 会出现编译错误,Dictionary是不能修改现有数据的.当然也不能扩展长度

这里会出现一些需要思考的地方, 如果Dictionary中存的value是一个class类型的呢

如: class Shape {

var sLen : Int

// 这里的省略

}

var d2 = ["a" : Shape(2)] // 将Shape的sLen初始化为2

(d2["a"]!).sLen = 4 // 注意这里的 ! 的用法,  这种情境在项目中会经常用.  因为在访问d2["a"]的时候,swift会认为可能返回nil,所以如果不用 ! 的用法,就会出现语法错误

如果用 d2["a"]?.sLen = 4的话,会被认为非法,因为在d2["a"]是nil的情况下会抛弃 .sLen. 那么就成了 d2["a"]? = 4, 给表达式赋值当然非法了

打印d2,修改成功, 表示是可以修改类实例里的属性.



0 0
原创粉丝点击