Swift闭包“Type'Int?”不是可选的,值不能为零
编译器抱怨: 类型“Int”不是可选的,值不能为零 在操场上也测试了这个,同样的错误。根据定义Int?这是一项可选择的权利吗?我的语法错了吗?使用Swift 3,Xcode 8.3.3 编辑: 这很有效Swift闭包“Type'Int?”不是可选的,值不能为零,swift,closures,optional,Swift,Closures,Optional,编译器抱怨: 类型“Int”不是可选的,值不能为零 在操场上也测试了这个,同样的错误。根据定义Int?这是一项可选择的权利吗?我的语法错了吗?使用Swift 3,Xcode 8.3.3 编辑: 这很有效 class Test { var x: Int? var TestX: () -> Bool { return self.x == nil } } 有人能解释为什么吗?大多数答案都假设我想返回Bool,但我特别想返回一个闭包,该闭包返回一个Boo
class Test {
var x: Int?
var TestX: () -> Bool {
return self.x == nil
}
}
有人能解释为什么吗?大多数答案都假设我想返回Bool,但我特别想返回一个闭包,该闭包返回一个Bool,并将闭包作为函数参数传递。无论如何,我知道怎么做了,这是一个语法问题。虽然仍然不确定语法的含义,但无论如何。以下是解决方案:
class Test {
var x: Int?
var TestX: () -> Bool { return
{ () in
self.x == nil
}
}
}
如果闭包中没有参数,只需使用两个括号:
class Test {
var x: Int?
var TestX: () -> Bool { return
{ () in
self.x == nil
}
}
}
也不需要自己。它应该是var TestX:Bool而不是var TestX:->Bool吗?
class Test {
var x: Int?
var TestX: () -> Bool { return { x == nil } }
}