inout中的inout参数会使Swift编译器崩溃?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (27)

我需要做的就是在Swift中开始一个新项目并添加到 main.swift

struct Foo {
  let bar: (inout baz: String) -> ()
}

当我尝试构建时出现错误: Command failed due to signal: Segmentation fault: 11

我做错了什么?

我认为可能inout在闭包中的参数不被支持,但是如果我这样定义闭包:

let baz: (inout baz: String) -> () = { baz in
  baz += "x"
  return
}

甚至

var baz: (inout baz: String) -> ()?

它编译并运行正常

提问于
用户回答回答于

可能的解决方案:显式指定返回值类型(在你的情况下是“Void”)。

用户回答回答于

只需在Xcode 6.3 beta附带的Swift 1.2中进行测试,并且编译成功。

扫码关注云+社区

领取腾讯云代金券