Swift:Assert 语句中的可选元组类型
Posted
技术标签:
【中文标题】Swift:Assert 语句中的可选元组类型【英文标题】:Swift: Optional tuple type in Assert statement 【发布时间】:2015-01-23 13:54:41 【问题描述】:我正在尝试在 Swift 中实现优先级队列,但它仍处于初始阶段。我想先为数据结构写测试。
目前我有这个方法,extractMin
,它返回优先级队列中的第一个元素。实现如下(T是泛型值类型)。
// Remove and return the element with minimum priority.
// If the pq is empty, return nil.
func extractMin() -> (T, Double)?
return nil // Implementation goes here
我想为此函数编写测试。我要检查的第一件事是它在 pq 为空时返回nil
。我想要这样的东西:
XCTAssertNil(priorityQueue.extractMin(), "A nil value should be returned when the priority queue is empty");
但是,这提示我一个错误,上面写着“(String,Double)与AnyObject不同”。
有没有办法解决这个问题?我该如何为这种可选的元组类型编写测试?
【问题讨论】:
【参考方案1】:也许您可以考虑返回一个包含两个可选值的元组并检查两者?或者具有这两个成员的可选类。
此链接还讨论了缺少“import Foundation”的可能性:http://www.scottlogic.com/blog/2014/09/24/swift-anyobject.html
另见:How can one use XCTAssertNil with optional structs?
【讨论】:
以上是关于Swift:Assert 语句中的可选元组类型的主要内容,如果未能解决你的问题,请参考以下文章