return 来自 Swift 中 return 类型 [String] 的函数 3

Early return from a function which has a return type of [String] in Swift 3

我有一个函数,如果满足某些条件,它 return 是 StringArray。但我想在我的函数中使用早期的 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 []
        }
        .......
        .......
    }