在swift函数中返回nil
在Swift中,我有一个返回某种对象的函数。该对象是可选的。当它不存在时,我想我应该返回在swift函数中返回nil,swift,Swift,在Swift中,我有一个返回某种对象的函数。该对象是可选的。当它不存在时,我想我应该返回nil,但Swift禁止我这样做。以下代码不起作用: func listForName (name: String) -> List { if let list = listsDict[name] { return list } else { return nil } } 它说:错误:nil
nil
,但Swift禁止我这样做。以下代码不起作用:
func listForName (name: String) -> List {
if let list = listsDict[name] {
return list
} else {
return nil
}
}
它说:错误:nil与返回类型“List”不兼容。
但我不想返回空列表对象之类的东西,我想在optional为空时不返回任何内容。如何执行此操作?要修复此错误,您需要返回可选的:
列表?
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]
}
但我不想返回空列表对象之类的东西,我想在optional为空时不返回任何内容。怎么做 您有几个选择:
- 返回可选列表(列表?)
- 未找到数据时返回空列表
- 返回异常(取决于上下文)
- 使用枚举表示其中一个/结果(类似于可选,但可能更好,具体取决于您的用例)
List
不是一个可选的更改,返回类型通常是List?
@CarpenterBlood thank,而主体可以是return listsDict[name]
,这在很大程度上否定了函数的整个要点。虽然不是真正的傻瓜,他的问题是:当optional为空时,我不想返回任何内容。怎么做?
。如上所述,有几种方法可以做到这一点