快速返回一个带有可选Element的泛型函数中的未包装Element?

问题描述

这里的想法是接受一个可选元素并返回一个空数组或一个嵌入了非可选元素的数组。写了一个快速的通用解决方案,我遇到了一个错误NoMethodError (undefined method `[]' for nil:NilClass)

是否可以解开Element并将其用于返回值?

Using '!' is not allowed here; perhaps '?' was intended?

解决方法

您可以使函数通用:

public func arrayWithOptional<Element>(optional: Element?) -> [Element] {
    if let optional = optional {
        return [optional]
    }
    return []
}