riで複数個
ri printと入力したら、たくさんあるよといわれてしまいました。
>ri print
More than one method matched your request. You can refine
your search by asking for information on one of:
CGI#print, IO#print, ...
クラスメソッドとself
クラスメソッドの定義ではselfが使えます。そのほうがクラス名を明記するよりもよいスタイルのようです。想像するに、クラス名をリファクタリングしたと...
制御構造
id:nunaさんから「||は制御構造」とのコメントをいただきました。ありがとうございます。
代入(=), 三項演算子(?:), 範囲(.., ...), 否定(!, not), 短絡(&&, and ||, or), スコープ?(::)...
CGI::escapeHTML
CGI::escapeHTMLメソッドを使うと、HTMLのエスケープが行われます。to_sをつけてから与えないとエラーになってしまいました。おそらくescapeHTMLメソッドに文字列以外を渡...
Time.now.to_i
現在の秒を整数で欲しいときにはto_iをつけましょう。
p Time.now # => Wed Jan 25 15:53:30 東京 (標準時) 2006
p Time.now.to_i # => 1138172006
Permalink | コメント(0)
File.exist?
フ...
Procではreturn不可
Procではreturnできません。
adder = Proc.new { |x, y|
# return x + y # unexpected return (LocalJumpError)
x + y
}
p adder.call(1, 2) # => 3
Permalink | コメント(0)
Proc
Proc.newは、コンテキス...
String#dump
String#dumpメソッドは文字をエスケープしてくれます。irbを使ってdumpとevalに戯れてみました。
irb(main):001:0> s = "print \"Ruby!\"\n"
=> "print \"Ruby!\"\n"
irb(main):002:0> eval s
Ruby!=> nil
irb...
Rationalクラス
Rationalクラスで有理数が扱えます。Rational(分子, 分母)で有理数。分母を省略すると整数になります。
require "rational"
def harmony(n)
sum = Rational(0)
for k in 1..n
sum += Rational(1, k)...
to_proc
to_procメソッドがあるオブジェクトならば、手続きオブジェクトとしてメソッドに渡すことができます。to_procメソッドはProcオブジェクトを返します。
class Rubyco
def to_proc
retur...
riと予約語
Rubyでは、riコマンドでリファレンスを読むことができますが「その文字列が何であるか」を知らないと調べにくいことがあります。たとえば、rescueの使い方を調べよう...
procとcall
Rubyでは、proc { ... }で手続きが作れ、callで手続きを呼び出せます。
p(123) # => 123
pp = proc { |x| p(x) }
pp.call(123) # => 123
ppp = proc { |xx, x| xx.call(x) }
ppp.call(pp,123) # => 123
pppp = proc { |xx...