return 来自 Swift 中 return 类型 [String] 的函数 3
Early return from a function which has a return type of [String] in Swift 3
我有一个函数,如果满足某些条件,它 return 是 String 的 Array。但我想在我的函数中使用早期的 return 功能。像这样:
func fetchPerson() -> [String] {
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
return nil
}
.......
.......
}
但我面临的问题如下:
Nil is incompatible with return type '[String]'
我试过只写 return
语句。但它也失败了。怎么办?
编辑:1
如果我只是想 return 从这个函数中返回而没有任何价值怎么办?回到调用这个函数的那一行。类似于:
func fetchPerson() -> [String] {
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
return //return to the line where function call was made
}
.......
.......
}
您可以通过两种方式解决此错误。
要么将 return 类型从 [String]
更改为 [String]?
意味着 make
return 类型可选。
func fetchPerson() -> [String]? {
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
return nil
}
.......
.......
}
要么将 return 语句从 return nil
更改为 return []
意味着
return 空数组。
func fetchPerson() -> [String] {
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
return []
}
.......
.......
}
我有一个函数,如果满足某些条件,它 return 是 String 的 Array。但我想在我的函数中使用早期的 return 功能。像这样:
func fetchPerson() -> [String] {
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
return nil
}
.......
.......
}
但我面临的问题如下:
Nil is incompatible with return type '[String]'
我试过只写 return
语句。但它也失败了。怎么办?
编辑:1
如果我只是想 return 从这个函数中返回而没有任何价值怎么办?回到调用这个函数的那一行。类似于:
func fetchPerson() -> [String] {
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
return //return to the line where function call was made
}
.......
.......
}
您可以通过两种方式解决此错误。
要么将 return 类型从
[String]
更改为[String]?
意味着 make return 类型可选。func fetchPerson() -> [String]? { guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return nil } ....... ....... }
要么将 return 语句从
return nil
更改为return []
意味着 return 空数组。func fetchPerson() -> [String] { guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return [] } ....... ....... }