我在Swift中有这个代码:
guard let user = username else{
return nil
}
但我收到以下错误:
Nil is incompatible with return type String
你知道为什么或如何在这种情况下返回nil?
我真的很感谢你的帮助
答案 0 :(得分:23)
你的函数是否声明了一个可选的返回类型?
func foo() - >串? {...
请注意
C或Objective-C中不存在选项的概念。该 Objective-C中最接近的是从a返回nil的能力 否则将返回一个对象的方法,其中nil表示“ 没有有效的对象。“
答案 1 :(得分:8)
您必须告诉编译器您要返回nil。你怎么样通过分配“?”在你的对象之后。例如看下面的代码:
func newFriend(friendDictionary: [String : String]) -> Friend? {
guard let name = friendDictionary["name"], let age = friendDictionary["age"] else {
return nil
}
let address = friendDictionary["address"]
return Friend(name: name, age: age, address: address)
}
请注意,我必须告诉编译器我要返回的对象朋友是可选的“朋友?”。否则,它会向我撒一个错误
答案 2 :(得分:0)
* 您的函数是否声明了可选的返回类型?
func minAndmax(array:[Int])->(min:Int, max:Int)? {
if array.isEmpty {
return nil
}
var currentMin = array[0]
var currentMax = array[0]
for value in array {
if value < currentMin {
currentMin = value
}
else if value > currentMax {
currentMax = value
}
}
return (currentMin, currentMax)
}
if let bounds = minAndmax(array: [8, -6, 2, 109, 3, 71]) {
print(bounds)
}