如何使这个 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 文档中有说明)。
如何在 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 文档中有说明)。