我试着写一个函数如下:

func mapTest(value: Bool?)  {
    var dataTest: String?
    dataTest = value.map({ val in
        if val {
            return ""
        }
        return nil
    })
}

xcode编译器现在在“return nil”处抛出一个错误。有人能解释我为什么吗?我的datatest是一个可选字符串,因此它应该能够将nil赋给datatest。还有别的办法吗?

最佳答案

很简单,你需要flatMap而不是map。它的行为完全相同,但它剥夺了选择。

func mapTest(value: Bool?)  {
    var dataTest: String?
    dataTest = value.flatMap({ val in
        if val {
            return ""
        }
        return nil
    })
}

关于swift - 使用map返回nil作为可选值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48224081/

10-13 09:27