lambda - Swift:在 lambda 中使用默认参数

标签 lambda swift xcode6-beta6

我想为 lambda 的参数使用默认值,例如:

func lambdaArgumentTest() -> String {
  let lambda = { (optString: String = "") -> String in optString }
  return lambda()
}

但是编译器似乎声明这是不可能的:

Default argument is only permitted for a non-curried function parameter

有解决这个问题的好方法吗?这在未来的版本中是否可行?

最佳答案

我不能说这是否会以您尝试过的方式成为可能,但看起来您可以通过使用嵌套函数来解决该错误。

func lambdaArgumentTest() -> String {
    func lambda(optString: String = "") -> String {
        return optString
    }

    return lambda()
}

关于lambda - Swift:在 lambda 中使用默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25487077/

相关文章:

ios - 如何使用 Swift scenekit 在 IOS 上绘制相机视频作为背景?

uiview - Swift 编译器错误 "failed with exit code 254"

ios - 在 Xcode 6 中使用前缀文件时出错

xcode - 为新的 OS X 项目选择 Swift 语言不可用

ios - 将 Swift 1 数组代码更新为 Swift 2 时出错

swift - 向 UIBarButtonItem Swift 添加操作

python - 如何定义获取第一个元素的 python lambda?

c++ - 在不知道参数类型的情况下否定 lambda?

lambda - 在 Racket 中使用 lambda 进行迭代?

c# - Entity Framework 非静态方法需要一个目标。 Lambda 中的空值