3
即使我已用@discardableResult
标记了函数,Swift 3编译器会警告我一个未使用的结果。为什么编译器会在标记为@discardableResult的函数上警告未使用的结果?
只有在使用?
语法调用可选变量的函数时才会发生。
为了简化问题,我创建了这个示例代码。 (我不得不把它放在一个项目,因为该警告没有在操场证明。)
class Foo {
@discardableResult func bar() -> String? {
return "bar"
}
}
class Tester {
func doSomething() {
var foo: Foo?
foo = Foo()
foo?.bar() //Warning: Expression of type 'String?' is unused
foo!.bar() //No warning
}
}
已知错误https://bugs.swift.org/browse/SR-1929但声称已解决。如果不是,你应该告诉他们。 – matt
虽然也许这(我)是一个评论:https://bugs.swift.org/browse/SR-1681 – matt
谢谢@matt。会做! –