如何使斯坦福的C193功能适应Swift 2.1

时间:2015-10-19 15:10:32

标签: swift2 swift2.1

我如何在swift 2.1中写这个?

我正在浏览斯坦福大学的C193快速编程课程,而且我正在使用swift 2.1。

我希望用户在显示器上显示操作数和操作历史记录。

它给了我这个错误:

  

"对成员的不明确的引用' map'。

func showStack() -> String? {         
     return .joinWithSeparator(opStack.map { "\($0)" })     
}

1 个答案:

答案 0 :(得分:1)

您无法将.joinWithSeparator应用于任何内容,必须在集合(例如数组)上使用它。并且opStack.map { "\($0)" }不会成为一个好的分隔符。

Swift 1.2版本是:

func showStack() -> String? {
    return " ".join(opStack.map{ "\($0)" })
}

Swift 2版本是:

func showStack() -> String? {
    return opStack.map{ "\($0)" }.joinWithSeparator(" ")
}

您只需要提取opStack.map{ "\($0)" }并将joinWithSeparator应用于它(新的Apple Swift 2文档中解释了“joinWithSeparator”方法)。