3
Swift 3コンパイラは、@discardableResult
という機能をマークしていますが、未使用の結果を警告しています。@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
おそらくこの1つ(私の)がコメントする人ですが、https://bugs.swift.org/browse/SR-1681 – matt
ありがとう、@matt。しましょう! –