如何使这个 Stanford 的 C193 函数适应 Swift 2.1

How to adapt this Stanford's C193 function to Swift 2.1

如何在 swift 2.1 中编写此代码?

我正在学习斯坦福大学的 C193 swift 编程 class 并且我正在使用 swift 2.1。

我想在计算器显示器上向用户展示操作数和操作的历史记录。

它给我这个错误:

"Ambiguous reference to member 'map'.

func showStack() -> String? {         
     return .joinWithSeparator(opStack.map { "\([=11=])" })     
}

您不能将 .joinWithSeparator 应用于任何对象,它必须用于集合(例如数组)。而且 opStack.map { "\([=13=])" } 不会成为一个好的分隔符。


Swift 1.2 版本是:

func showStack() -> String? {
    return " ".join(opStack.map{ "\([=10=])" })
}

Swift2 版本是:

func showStack() -> String? {
    return opStack.map{ "\([=11=])" }.joinWithSeparator(" ")
}

您只需提取 opStack.map{ "\([=14=])" } 并对其应用 joinWithSeparator("joinWithSeparator" 方法在新的 Apple Swift 2 文档中有说明)。