如果a与c相同,b与c相同,为什么a与b不相同?
var a = [1, 2, 3]
var b = a
var c = a[0...2]
a === c // true
b === c // true
a === b // false
Run Code Online (Sandbox Code Playgroud)
如果a,b,c是常数:
let a = [1, 2, 3]
let b = a
let c = a[0...2]
a === c // true
b === c // true
a === b // true
Run Code Online (Sandbox Code Playgroud)
小智 0
正如@onevcat 所说,这可能是 Playground 的一个错误。如果更改a为引用类型的对象,则所有身份测试都将是true。
class K {}
var a = [K(), K(), K()]
var b = a
var c = a[0...2]
a === c // true
b === c // true
a === b // true
Run Code Online (Sandbox Code Playgroud)
这意味着a, b&c共享相同的存储和元素。
| 归档时间: |
|
| 查看次数: |
928 次 |
| 最近记录: |