这在所有情况下都不觉得很自然。我们来看一个例子:
func StringReturningFunc() -> String { return "Test String"}// Error: Cannot convert the Expressions type '() -> $T0' to type 'String'let closure: () -> () = { StringReturningFunc()}
正如你所看到的,尽管闭包只应该调用一个简单的函数,它会尝试自动返回它的返回值,它的类型为String,并且不匹配返回类型voID。
我可以通过这样实现闭包体来防止这种情况:
let _ = StringReturningFunc()
这感觉很奇怪。
有没有更好的方式来做这个或者这只是我要住的东西?
发生这种情况的原因是单行表达式闭包的简写。封闭中有一个隐含的“返回”,因为它是写的。let closure: () -> () = { StringReturningFunc() return}
写这样就行了
总结以上是内存溢出为你收集整理的swift – 无返回类型的单线关闭全部内容,希望文章能够帮你解决swift – 无返回类型的单线关闭所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)