種類
- 文書 (48)
- 特異メソッド (48)
- クラス (12)
- インスタンスメソッド (12)
- ライブラリ (12)
キーワード
- Numeric (12)
- Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (12)
- bigdecimal (12)
-
ruby 1
. 6 feature (12) -
set
_ get _ line _ procs (24) - strptime (24)
- 制御構造 (12)
- 演算子式 (12)
検索結果
-
Module
# >=(other) -> bool | nil (18154.0) -
比較演算子。self が other の先祖か同一クラスである場合、 true を返します。 self が other の子孫である場合、false を返します。
...ule#<
//emlist[例][ruby]{
module Foo; end
module Bar
include Foo
end
module Baz
prepend Foo
end
Bar.ancestors # => [Bar, Foo]
Foo >= Bar # => true
Bar >= Foo # => false
Baz.ancestors # => [Foo, Baz]
Foo >= Baz # => true
Baz >= Foo # => false
Foo >= Foo # => true
Foo >= Object # => nil
//}... -
制御構造 (442.0)
-
制御構造 条件分岐: * if * unless * case 繰り返し: * while * until * for * break * next * redo * retry 例外処理: * raise * begin その他: * return * BEGIN * END
...* until
* for
* break
* next
* redo
* retry
例外処理:
* raise
* begin
その他:
* return
* BEGIN
* END
Rubyでは(Cなどとは異なり)制御構造は式であって、何らかの値を返すものが
あります(返さないものもありま......が出来るものです.
=== 条件分岐
====[a:if] if
//emlist[例][ruby]{
if age >= 12 then
print "adult fee\n"
else
print "child fee\n"
end
gender = if foo.gender == "male" then "male" else "female" end
//}
文法:
if 式 [then]
式 ...
[elsif 式 [then]......。
====[a:unless] unless
//emlist[例][ruby]{
unless baby?
feed_meat
else
feed_milk
end
//}
文法:
unless 式 [then]
式 ...
[else
式 ... ]
end
unless は if と反対で、条件式が偽の時に then 以下の
式を評価します... -
ruby 1
. 6 feature (324.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
...ーになっていました。
((<ruby-dev:17155>))
open("|-","r+") {|f|
if f
f.dup.close_write
else
sleep 1
end
}
=> ruby 1.6.7 (2002-03-01) [i586-linux]
-:3:in `close_write': closing non-duplex IO for writing (IOError)
from -:3......uous first argument; make sure
ruby 1.6.7 (2002-07-30) [i586-linux]
"\\#"
nil
: 2002-04-29: rb_find_file()
$SAFE >= 4 で、絶対パス指定でない場合、SecurityError 例外が発生する
ようになりました。
: 2002-04-26: Regexp.quote
((<rub......トで 2 回シグナルを送らないと終了しない不具合が修正さ
れました。((<ruby-bugs-ja:PR#223>))
trap(:TERM, "EXIT")
END{
puts "exit"
}
Thread.start { Thread.stop }
sleep
: 2002-04-17: Regexp#inspect
((<ruby-bugs-ja:PR#222>))
p %r{\/}... -
演算子式 (120.0)
-
演算子式 * assign * selfassign * multiassign * range * range_cond * and * or * not * cond
...項)
* / %
+ -
<< >>
&
| ^
> >= < <=
<=> == === != =~ !~
&&
||
.. ...
?:(条件演算子)......)
+@, -@ は単項演算子 +, - を表しメソッド定義
などではこの記法を利用します。
//emlist{
| ^ & <=> == === =~ > >= < <= << >>
+ - * / % ** ~ +@ -@ [] []= ` ! != !~
//}
これらの演算子式の定義方法についてはd:s......出しに変換されます。
//emlist[例][ruby]{
class C
def initialize
@ary = [0,1,2,3,4,5,6,7]
end
def [](i)
@ary[i * 2]
end
def []=( i, v )
@ary[i * 2] = v
end
end
c = C.new
p c[3] # c.[]( 3 ) に変換され、その結果は 6
p c[3] = 1 # c.[]=(3,1) に変換... -
bigdecimal (78.0)
-
bigdecimal は浮動小数点数演算ライブラリです。 任意の精度で 10 進表現された浮動小数点数を扱えます。
...0
for i in (1..10000)
sum = sum + 0.0001
end
print sum # => 0.9999999999999062
//}
//emlist[例2: 0.0001 を 10000 回足す場合。(BigDecimal)][ruby]{
require 'bigdecimal'
sum = BigDecimal("0")
for i in (1..10000)
sum = sum + BigDecimal("0.0001")
end
print sum # => 0.1e1
//}
//emlist[例3:......ed long の配列 (以下の構造体要素 frac) で管理されます。
概念的には、以下のようになります。
<浮動小数点数> = 0.xxxxxxxxx * BASE ** n
ここで、x は仮数部を表す数字、BASE は基数 (10 進表現なら 10)、
n は指数部を表す整数値で......=== 2 進と 10 進
BigDecimal は <浮動小数点数> = 0.xxxxxxxxx*10**n という 10 進形式で数値を保持します。
しかし、計算機の浮動小数点数の内部表現は、
言うまでもなく <浮動小数点数> = 0.bbbbbbbb*2**n という 2 進形式が普通です
(x は... -
Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (60.0)
-
Rubyで使われる記号の意味(正規表現の複雑な記号は除く) ex q num per and or plus minus ast slash hat sq period comma langl rangl eq tilde dollar at under lbrarbra lbra2rbra2 lbra3rbra3 dq colon ac backslash semicolon
...ソッドを示すために使われます。
: xx ? yy : zz
d:spec/operator#cond。三項演算子とも呼ばれます。if xx then yy else zz end と同じ意味です。
: /xxx?/
正規表現の、量指定子(quantifiers)。直前の正規表現の 0 または 1 回の繰り返し。
===......ためには
d:spec/variables#const を参照。
: xx ? yy : zz
条件演算子。三項演算子とも呼ばれます。if xx then yy else zz end と同じ意味です。
d:spec/operator#cond を参照。
: { a:"aaa", b:"bbb" }
ハッシュの新しい記法。以下と同じです。
//em......: class << obj
特異クラス定義。d:spec/def#singleton_classを参照。
===[a:rangl] >
: 3 > 5
「より大きい」比較演算子
: 3 >= 5
「より大きいか等しい」比較演算子
: 3 <=> 3
基本的な比較演算子。ほかの比較演算子はこの演算子を元に... -
Numeric (54.0)
-
数値を表す抽象クラスです。Integer や Float などの数値クラス は Numeric のサブクラスとして実装されています。
...o o - -
> | - - o o o - -
>= | - - o o o - -
>> | - - o......floor
end
//}
また、任意桁の切上げ、切捨て、四捨五入を行うメソッドは以下のように
定義できます。
//emlist[][ruby]{
class Numeric
def roundup(d=0)
x = 10**d
if self > 0
self.quo(x).ceil * x
else
self.quo(x).floor * x
end
end......f < 0
self.quo(x).ceil * x
else
self.quo(x).floor * x
end
end
def roundoff(d=0)
x = 10**d
if self < 0
(self.quo(x) - 0.5).ceil * x
else
(self.quo(x) + 0.5).floor * x
end
end
end
//}
===[a:division] 除法と商・剰余
Numeric には除法......=== | - o o - -
> | - o o - -
>= | - o o - -
>> | - o - - -... -
Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (54.0)
-
Rubyで使われる記号の意味(正規表現の複雑な記号は除く) ex q num per and or plus minus ast slash hat sq period comma langl rangl eq tilde dollar at under lbrarbra lbra2rbra2 lbra3rbra3 dq colon ac backslash semicolon
...ソッドを示すために使われます。
: xx ? yy : zz
d:spec/operator#cond。三項演算子とも呼ばれます。if xx then yy else zz end と同じ意味です。
: /xxx?/
正規表現の、量指定子(quantifiers)。直前の正規表現の 0 または 1 回の繰り返し。
===......ためには
d:spec/variables#const を参照。
: xx ? yy : zz
条件演算子。三項演算子とも呼ばれます。if xx then yy else zz end と同じ意味です。
d:spec/operator#cond を参照。
: { a:"aaa", b:"bbb" }
ハッシュの新しい記法。以下と同じです。
//em......: class << obj
特異クラス定義。d:spec/def#singleton_classを参照。
===[a:rangl] >
: 3 > 5
「より大きい」比較演算子
: 3 >= 5
「より大きいか等しい」比較演算子
: 3 <=> 3
基本的な比較演算子。ほかの比較演算子はこの演算子を元に... -
Time
. strptime(date , format , now=self . now) -> Time (24.0) -
文字列を Date._strptime を用いて Time オブジェクト に変換します。
...){|y|
if y > 100 then y
elsif y >= 69 then y + 1900
else y + 2000
end
}
#=> 1991-05-18 04:13:00 +0900
Time.strptime('01/5/18 4:13:00', '%Y/%m/%d %T'){|y|
if y > 100 then y
elsif y >= 69 then y + 1900
else y + 2000
end
}
#=> 2001-05-18 04:13:00 +0900... -
Time
. strptime(date , format , now=self . now) {|y| . . . } -> Time (24.0) -
文字列を Date._strptime を用いて Time オブジェクト に変換します。
...){|y|
if y > 100 then y
elsif y >= 69 then y + 1900
else y + 2000
end
}
#=> 1991-05-18 04:13:00 +0900
Time.strptime('01/5/18 4:13:00', '%Y/%m/%d %T'){|y|
if y > 100 then y
elsif y >= 69 then y + 1900
else y + 2000
end
}
#=> 2001-05-18 04:13:00 +0900...