利用者:Senseequal/Ruby
表示
stdin -> stdout
[編集]#!/usr/bin/ruby
puts gets
getsは素直だが、putsは改行の取り扱いを上手くやってくれる。
演算
[編集]Fixnum, Floatオブジェクトの*メソッドは乗算。
puts 5.*(5) # 25
puts 5.0.*(5.0) # 25.0
Stringオブジェクトの*メソッドは反復。
puts '5'.*(5) # 55555
略記法として中置記法がある。
puts 5 * 5 # 25
puts 5.0 * 5.0 # 25.0
puts '5' * 5 # 55555
Math:: or Math.
[編集]メソッドとプロパティは別。
puts Math::PI # 4 * Math.atan2(1, 1)
puts Math::E # Math.exp(1)
puts +(1 + Math.sqrt(5)) / 2 # (1 + Math.sqrt(5)) / 2
括弧
[編集]括弧は不要。
puts Math.sqrt 5
しかし、
puts +(1 + Math.sqrt 5) / 2
これは優先順位が不適当。
puts +(1 + (Math.sqrt 5)) / 2
こうしなければならない。
puts +(1 + Math.sqrt(5)) / 2
一般的にはこう書かれる。
puts((1 + Math.sqrt 5) / 2)
こちらの方がスマートであるとの意見もある。
puts 2.** 10 # 1024
優先順位が明らかならば、括弧は不要。
yes
[編集]puts 'y' while 1
または
while 1
puts 'y'
end
Perlではできなかったこと
[編集]Perlでは夢見ることしかできなかったこれができる。
p 'y' if 1 while 1 if 1 while 1