class SomeClass {
var someProperty: Int {
throw Err("SNAFU")
}
}
对于上面的代码,Swift二进制文件会抱怨“错误没有被处理,因为未声明包含函数“throws”。
我如何在上述代码中声明“someProperty”会“throws”呢?
class SomeClass {
var someProperty throws: Int {
}
}
和
class SomeClass {
var someProperty: throws Int {
}
}
和
class SomeClass {
var someProperty: Int throws {
}
}
似乎不起作用。
Hashable
元素的通用类型,这样做是否合理,就像SwiftDictionary
键必须是Hashable一样?如果不是,我想你可能需要做一些工作来设计一个哈希函数,以防您的元素不可哈希,因为Hashable
协议不允许nil
响应并且无法抛出异常。如果适当的话,您也可以使用fatalError()
。 - Charles A.struct Container<Element> {}
,则可以添加扩展,如extension Container where Element: Hashable {}
并在扩展中定义计算属性。仅当Container
实例内的Element
类型为Hashable
时,计算属性才可用。 - justinpawela