0

私はこのメソッドを持っています。これは非常に単純で、ほとんどの場合、isTrue パラメータは false で、「2」を返す必要があります。

def test(isTrue = false)
  isTrue ? 1 : 2
end

これは私の開発環境では問題なく動作しますが、heroku にプッシュすると突然、それが true であるかのように返され始めます。varがnil(またはそのようなもの)であるかどうかをチェックしている可能性があると思います

三項を次のように変更しました。

isTrue == true ? 1 : 2

そして、それは問題を修正しますが、なぜこれが起こるのかわかりません。誰かがそれを説明できますか?ありがとう!

4

2 に答える 2

0
isTrue = true ? 1 : 2 

Mark Meeusがコメントした ように、これは常に返さ1れます。

=rubyの代入演算子で、変数に特定の値を代入させるために使用されます。

==ただし、比較演算子です。

したがって、現在のコードでは、「isTrue = true」を割り当ててから、1if isTrueisを返すようにコードに指示していますtrue

于 2013-10-17T12:39:01.057 に答える