在Swift中,我有一个返回某种对象的函数。该对象是可选的。当它不存在时,我想我应该返回零,但斯威夫特禁止我这样做。以下代码无效:
func listForName (name: String) -> List {
if let list = listsDict[name] {
return list
} else {
return nil
}
}
它说:error: nil is incompatible with return type 'List'
但我不想返回类似空List对象的东西,我想在Optional为空时返回任何内容。怎么做?
答案 0 :(得分:29)
要修复错误,您需要返回一个Optional:List?
func listForName (name: String) -> List? {
if let list = listsDict[name] {
return list
} else {
return nil
}
}
或者只返回listsDict[name]
,因为它可以是可选的,也可以是列表本身。
func listForName (name: String) -> List? {
return listsDict[name]
}
但我不想返回类似空List对象的东西,我想在Optional为空时返回任何内容。怎么做?
您有多种选择: