我的印象是,加入的條件與& &是順序執行,使得下面將返回true:紅寶石條件序列
a = "adasd"
> b = a && b.present?
=> false
的思考?
謝謝! --Peter
注:
B = A => 「adasd」
b.present? =>真
我的印象是,加入的條件與& &是順序執行,使得下面將返回true:紅寶石條件序列
a = "adasd"
> b = a && b.present?
=> false
的思考?
謝謝! --Peter
注:
B = A => 「adasd」
b.present? =>真
當你這樣說:
b = a && b.present?
你聲明b
作爲一個局部變量,但它會nil
,直到分配的右側進行評估。特別是,b
將nil
當你打電話present?
上,並且會話將是虛假的b
錯誤。
當你這樣做:當你調用present?
它讓您從b.present?
返回true
a = 'pancakes'
b = a
b.present?
b
將具有值'pancakes'
。
作爲每rails doc
本正在檢查一個變量爲非空白
按照分配定時,紅寶石只要它認爲它聲明中的範圍的變量,所以B將處於範圍但沒有價值,所以現在將返回false。
你也許應該用defined?
a = "abc"
=> "abc"
defined? a
=> "local-variable"
defined? b
=> nil
b = defined? b
=> "local-variable"
啊此相比。當然。那麼正確:(b = a)&& b.present? –