1

このコードを実行すると、最後の行に「Variable 'message' used before being initialized」というエラーが表示されます。

var message: String

if true {
    message = "Hello, world"
}

println(message)

ifステートメントは alwaysであるためtrue、コンパイラmessageは が初期化されていないと考えるのはなぜですか? 多分これはバグですか?

この例は機能します:

var message: String

var n = 70
if n < 50 {
    message = "n is less than 50"
} else {
    message = "n is greater than or equal to 50"
}

println(message)

ステートメントを削除すると、上記と同じエラーが発生しますが、50 以上になる可能性があるelseため、今回は予想どおりです。n

4

2 に答える 2

0

var メッセージ: 文字列! ( ! を追加すると修正されます。)

! =変数のラップを解除するか、その後に何を置いたか、のように? オプションを意味します。

于 2014-10-12T03:26:34.953 に答える