我寫了一個簡單的回聲循環,但它給出了未定義的局部變量錯誤。當它設置在同一行時,局部變量undefined
> puts line while line = gets
NameError: undefined local variable or method `line' for main:Object
爲什麼line
到puts
不可見?
我知道加入line = nil
可以解決這個錯誤。但我想知道爲什麼如此。
> line = nil
> puts line while line = gets #==> Works!
apple banana
apple banana
我不明白爲什麼這個問題最初是downvoted?我發現它很有用。 – shivam 2015-03-25 07:08:32
請參閱[修飾符'if'和'unless'](http://ruby-doc.org/core-2.2.1/doc/syntax/control_expressions_rdoc.html#label-Modifier+if+and+unless)(第三個示例) – Stefan 2015-03-25 07:58:46
@Stefan謝謝。我現在知道了。 – 2015-03-25 08:54:38