0

Rubyスタイルガイドにあります。

1 > 2 ? true : false; puts 'Hi'

これは常に返されると思いますHiが、どうすれば読むことができますか?

4

6 に答える 6

3

1> 2の場合はtrue、それ以外の場合はfalseです。

ただし、hi条件の結果が何であれ、出力されます。

それは同じです:

if 1 > 2 then
  true
else
  false
end
puts 'hi'
于 2012-10-03T02:57:09.117 に答える
2

あなたはこれを次のように読むことができます

1 > 2 ? true : false # first line of code
puts "Hi"  #second line of code
于 2012-10-03T02:58:22.743 に答える
0

1> 2?真/偽; 「こんにちは」を意味します

if 1 > 2 
  return true
else
  return false
end
puts "Hi"

ここで毎回、条件外で「Hi」を出力するため、結果は「hi」を出力するものになります。

しかし

if 1 > 2
 puts "1 is not greater than 2"
else
 puts "1 is greater than 2"
end

コンソールでテストすることもできます

1.9.3p125 :002 > if 1 > 2
1.9.3p125 :003?>   puts "1 is not greater than 2"
1.9.3p125 :004?>   else
1.9.3p125 :005 >     puts "1 is greater than 2"
1.9.3p125 :006?>   end
1 is greater than 2
 => nil 
于 2012-10-03T10:24:08.540 に答える
0

Rubyコンパイラは次のように読み取ります。

1.>( 2 )
puts "Hi"

三項演算子?:冗長です。比較'より大きい'記号:>は実際には数値クラスのメソッドです。

于 2012-10-03T02:55:54.527 に答える
0

1が2より大きい場合はtrue、それ以外の場合はfalse。次に、こんにちは

http://buddylindsey.com/c-vs-ruby-if-then-else/

于 2012-10-03T02:58:30.550 に答える
0

セミコロンは、2行のコードをインラインで区切る方法です。だからそれは

1 > 2 ? true : false
puts "Hi"

これは

false
puts "Hi"

そしてもちろん、ただ言う行falseは何もしません(関数定義の最後の行である場合など、いくつかの場合を除いて、メソッドはその行に到達するとfalseを返します)。

于 2012-10-03T04:52:53.913 に答える