使用map为可选值返回nil

时间:2018-01-12 10:18:01

标签: swift

我尝试按如下方式编写函数:

{{1}}

Xcode编译器现在在"返回nil"时抛出错误。有人能解释一下为什么吗?我的dataTest是一个可选的String,因此它应该能够为dataTest分配nil。还有其他办法吗?

1 个答案:

答案 0 :(得分:4)

很简单,您需要flatMap而不是map。它的行为完全相同,但它会删除选项。

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