gpt4 book ai didi

swift - XCTAssert with String not Equatable

转载 作者:可可西里 更新时间:2023-11-01 02:27:04 26 4
gpt4 key购买 nike

为什么会这样

var sb = NSStoryboard(name: "Main", bundle: nil)
var wc = sb?.instantiateControllerWithIdentifier("pref") as NSWindowController
XCTAssertEqual(wc.window?.title, "Preferences", "Preferences window must have title Preferences")

给我 Type 'String?'不符合协议(protocol) 'Equatable' 错误而

 var sb = NSStoryboard(name: "Main", bundle: nil)
var wc = sb?.instantiateControllerWithIdentifier("pref") as NSWindowController
XCTAssert(window.window?.title == "Preferences", "Preferences window must have title Preferences")

不是吗?

最佳答案

创建 Equatable 并非完全可能Optional<T>因为T本身可能不是 Equatable并且不能在实例声明中被这样约束。所以,== Optionals 的运算符像这样重载

func ==<T : Equatable>(lhs: T?, rhs: T?) -> Bool

但是Equatable没有对应的实例和它一起去。最终结果是 Optionals 可以与 == 进行比较, 但可能不会提供给范围超过通用 Equatable 的方法类似 XCTAssertEqual 的类型.具有实际约束的类型系统的另一个重要论据......

关于swift - XCTAssert with String not Equatable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27207370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com