ObjC/Swift Swift 里面的 `==` 有些奇怪的行为,明白的请帮忙解释一下...

blacktulip · 2014年07月06日 · 最后由 w7938940 回复于 2015年02月03日 · 7317 次阅读
var a = [1, 2, 3, 4, 5]
var b = [1, 2, 3, 4, 5]

a === b // false, as expected
a == b  // true,  as expected

a[0...1] // [1, 2]
b[0...1] // [1, 2]

a[0...1] === b[0...1] // false, as expected

a[0...1] == b[0...1]  // false, surprise

// ...and some more confusion

var c = a[0...1]
var d = b[0...1]

c == d  // true

为什么为什么这是为什么...

哈哈,原来是一个 bug,已经有人反馈了 http://openradar.appspot.com/17340722

Dora 爸你是语言学家么?

#2 楼 @terrywang 就是懂得太少... 所以要赶紧多学点

#3 楼 @blacktulip Beta 3 中已修复。

a[0...1] == b[0...1] // false, surprise 这是为什么,很 surprise

需要 登录 后方可回复, 如果你还没有账号请 注册新账号