【发布时间】:2015-01-01 00:54:24
【问题描述】:
我需要做的就是在 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) -> ()?
它编译并运行正常
【问题讨论】:
-
我在 Apple Bug Reporter 中开了一张票。我认为这是一个错误。 Swift 编译器现在有点问题。
-
在您的第一个示例中,编译器找不到类型。在您的第二个示例中,编译器可以发现它是因为您间接定义的事实。在最后一个示例中,它只是一个可选的,因此存在将始终为真。
-
你是对的;这失败了。
标签: xcode swift compiler-errors closures