るりまサーチ

最速Rubyリファレンスマニュアル検索!
300件ヒット [1-100件を表示] (0.042秒)

別のキーワード

  1. _builtin >>
  2. date >>
  3. ipaddr >>
  4. bn >>
  5. status >>

クラス

キーワード

検索結果

<< 1 2 3 > >>

Method#>>(callable) -> Proc (18133.0)

self と引数を合成した Proc を返します。

...呼び出しの順序が逆になります。

@
param callable Proc、Method、もしくは任意の call メソッドを持ったオブジェクト。

//emlist[例][ruby]{
def f(x)
x * x
end

def g(x)
x + x
end

# (3 * 3) + (3 * 3)
p (method(:f) >> method(:g)).call(3) # => 18
//}

//emlist[cal...
...uby]{
class WordScanner
def self.call(str)
str.scan(/\w+/)
end
end

File.write('testfile', <<~TEXT)
Hello, World!
Hello, Ruby!
TEXT

pipeline = File.method(:read) >> WordScanner >> method(:pp)
pipeline.call('testfile') # => ["Hello", "World", "Hello", "Ruby"]
//}

@
see Proc#<<, Proc#>>...

Proc#>>(callable) -> Proc (18133.0)

self と引数を合成した Proc を返します。

...は呼び出しの順序が逆になります。

@
param callable Proc、Method、もしくは任意の call メソッドを持ったオブジェクト。

//emlist[例][ruby]{
f = proc { |x| x * x }
g = proc { |x| x + x }

# (3 * 3) + (3 * 3)
p (f >> g).call(3) # => 18
//}

//emlist[call を定義...
...anner
def self.call(str)
str.scan(/\w+/)
end
end

File.write('testfile', <<~TEXT)
Hello, World!
Hello, Ruby!
TEXT

pipeline = proc { |fname| File.read(fname) } >> WordScanner >> method(:p)
pipeline.call('testfile') # => ["Hello", "World", "Hello", "Ruby"]
//}

@
see Method#<<, Method#>>...

Process::Status#>>(num) -> Integer (18131.0)

self.to_i >> num と同じです。

...self.to_i >> num と同じです。

@
param num 整数を指定します。

fork { exit 99 } #=> 26563
Process.wait #=> 26563
$?.to_i #=> 25344
$? >> 8 #=> 99...

Bignum#>>(bits) -> Fixnum | Bignum (18121.0)

シフト演算子。bits だけビットを右にシフトします。

...フトします。

右シフトは、符号ビット(最上位ビット(MSB))が保持されます。
bitsが実数の場合、小数点以下を切り捨てた値でシフトします。

@
param bits シフトさせるビット数

printf("%#b\n", 0b0101 >> 1) #=> 0b10
p -1 >> 1 #=> -1...

Fixnum#>>(bits) -> Fixnum | Bignum (18121.0)

シフト演算子。bits だけビットを右にシフトします。

...フトします。

右シフトは、符号ビット(最上位ビット(MSB))が保持されます。
bitsが実数の場合、小数点以下を切り捨てた値でシフトします。

@
param bits シフトさせるビット数

printf("%#b\n", 0b0101 >> 1) #=> 0b10
p -1 >> 1 #=> -1...

絞り込み条件を変える

Integer#>>(bits) -> Integer (18121.0)

シフト演算子。bits だけビットを右にシフトします。

...、符号ビット(最上位ビット(MSB))が保持されます。
bitsが実数の場合、小数点以下を切り捨てた値でシフトします。

@
param bits シフトさせるビット数

//emlist[][ruby]{
printf("%#b\n", 0b0101 >> 1) # => 0b10
p -1 >> 1 # => -1
//}...

Integer#[](nth) -> Integer (105.0)

nth 番目のビット(最下位ビット(LSB)が 0 番目)が立っている時 1 を、そうでなければ 0 を返します。

...を返します。

@
param nth 何ビット目を指すかの数値
@
param len 何ビット分を返すか
@
param range 返すビットの範囲
@
return self[nth] は 1 か 0
@
return self[i, len] は (n >> i) & ((1 << len) - 1) と同じ
@
return self[i..j] は (n >> i) & ((1 << (j -...
...i + 1)) - 1) と同じ
@
return self[i...j] は (n >> i) & ((1 << (j - i)) - 1) と同じ
@
return self[i..] は (n >> i) と同じ
@
return self[..j] は n & ((1 << (j + 1)) - 1) が 0 なら 0
@
return self[...j] は n & ((1 << j) - 1) が 0 なら 0
@
raise ArgumentError self[..j] で...
...n & ((1 << (j + 1)) - 1) が 0 以外のとき
@
raise ArgumentError self[...j] で n & ((1 << j) - 1) が 0 以外のとき

//emlist[][ruby]{
a = 0b11001100101010
30.downto(0) {|n| print a[n] }
# => 0000000000000000011001100101010

a = 9**15
50.downto(0) {|n| print a[n] }
# => 000101110110100000111...

Integer#[](nth, len) -> Integer (105.0)

nth 番目のビット(最下位ビット(LSB)が 0 番目)が立っている時 1 を、そうでなければ 0 を返します。

...を返します。

@
param nth 何ビット目を指すかの数値
@
param len 何ビット分を返すか
@
param range 返すビットの範囲
@
return self[nth] は 1 か 0
@
return self[i, len] は (n >> i) & ((1 << len) - 1) と同じ
@
return self[i..j] は (n >> i) & ((1 << (j -...
...i + 1)) - 1) と同じ
@
return self[i...j] は (n >> i) & ((1 << (j - i)) - 1) と同じ
@
return self[i..] は (n >> i) と同じ
@
return self[..j] は n & ((1 << (j + 1)) - 1) が 0 なら 0
@
return self[...j] は n & ((1 << j) - 1) が 0 なら 0
@
raise ArgumentError self[..j] で...
...n & ((1 << (j + 1)) - 1) が 0 以外のとき
@
raise ArgumentError self[...j] で n & ((1 << j) - 1) が 0 以外のとき

//emlist[][ruby]{
a = 0b11001100101010
30.downto(0) {|n| print a[n] }
# => 0000000000000000011001100101010

a = 9**15
50.downto(0) {|n| print a[n] }
# => 000101110110100000111...

Integer#[](range) -> Integer (105.0)

nth 番目のビット(最下位ビット(LSB)が 0 番目)が立っている時 1 を、そうでなければ 0 を返します。

...を返します。

@
param nth 何ビット目を指すかの数値
@
param len 何ビット分を返すか
@
param range 返すビットの範囲
@
return self[nth] は 1 か 0
@
return self[i, len] は (n >> i) & ((1 << len) - 1) と同じ
@
return self[i..j] は (n >> i) & ((1 << (j -...
...i + 1)) - 1) と同じ
@
return self[i...j] は (n >> i) & ((1 << (j - i)) - 1) と同じ
@
return self[i..] は (n >> i) と同じ
@
return self[..j] は n & ((1 << (j + 1)) - 1) が 0 なら 0
@
return self[...j] は n & ((1 << j) - 1) が 0 なら 0
@
raise ArgumentError self[..j] で...
...n & ((1 << (j + 1)) - 1) が 0 以外のとき
@
raise ArgumentError self[...j] で n & ((1 << j) - 1) が 0 以外のとき

//emlist[][ruby]{
a = 0b11001100101010
30.downto(0) {|n| print a[n] }
# => 0000000000000000011001100101010

a = 9**15
50.downto(0) {|n| print a[n] }
# => 000101110110100000111...

Module#prepend(*modules) -> self (63.0)

指定したモジュールを self の継承チェインの先頭に「追加する」ことで self の定数、メソッド、モジュール変数を「上書き」します。

...ます。そのため、prepend_features を override することで
prepend の処理を追加/変更できます。


@
param modules prepend する Module を指定します
@
see Module#prepend_features, Module#prepended

//emlist[例][ruby]{
# super と prepend の組み合わせの例
module X...
...def foo
puts "A" #(1a)
end
end

A.new.foo
# (1x) (2x)(ここの super で A#foo を呼びだす) (1a) (3x) の順に実行される
# >> X1
# >> A
# >> X2

# 2つのモジュールを X, Y を prepend X, Y という順で指定したもの
module Y
def foo
puts "Y1" #(1y)
super #(2...
...)
end
end

B.new.foo
# (1x) (2x) (1y) (2y) (1b) (3y) (3x) の順に実行される
# X#foo のほうが Y#foo より継承チェインの手前側にあり、そちらが優先される
# >> X1
# >> Y1
# >> B
# >> Y2
# >> X2
# prepend Y, X とすると Y1 X1 B X2 Y2 の順で表示される
//}...
...b)
end
end

B.new.foo
# (1x) (2x) (1y) (2y) (1b) (3y) (3x) の順に実行される
# X#foo のほうが Y#foo より継承チェインの手前側にあり、そちらが優先される
# >> X1
# >> Y1
# >> B
# >> Y2
# >> X2
# prepend Y, X とすると Y1 X1 B X2 Y2 の順で表示される
//}...

絞り込み条件を変える

String#gsub(pattern, replace) -> String (44.0)

文字列中で pattern にマッチする部分全てを 文字列 replace で置き換えた文字列を生成して返します。

...
これらは $`、$'、$+ に対応します。

@
param pattern 置き換える文字列のパターンを表す文字列か正規表現。
文字列を指定した場合は全く同じ文字列にだけマッチする
@
param replace pattern で指定した文字列と置...
...//emlist[例][ruby]{
p 'abcdefg'.gsub(/def/, '!!') # => "abc!!g"
p 'abcabc'.gsub(/b/, '<<\&>>') # => "a<<b>>ca<<b>>c"
p 'xxbbxbb'.gsub(/x+(b+)/, 'X<<\1>>') # => "X<<bb>>X<<bb>>"
p '2.5'.gsub('.', ',') # => "2,5"
//}

注意:

第 2 引数 replace に $1 を埋め込んでも意...
...可読性を上げるには、
\& や \1 よりも下記のようにブロック付き形式の gsub を使うべきです。

//emlist[][ruby]{
p 'xbbb-xbbb'.gsub(/x(b+)/) { $1 } # => "bbb-bbb" # OK

puts '\n'.gsub(/\\/) { '\\\\' } # => \\n # OK
//}

@
see String#sub, String#gsub!...

String#sub(pattern, replace) -> String (37.0)

文字列中で pattern にマッチした最初の部分を 文字列 replace で置き換えた文字列を生成して返します。

...
これらは $`、$'、$+ に対応します。

@
param pattern 置き換える文字列のパターンを表す文字列か正規表現。
文字列を指定した場合は全く同じ文字列にだけマッチする
@
param replace pattern で指定した文字列と置...
...文字列

//emlist[例][ruby]{
p 'abcdefg'.sub(/def/, '!!') # => "abc!!g"
p 'abcabc'.sub(/b/, '<<\&>>') # => "a<<b>>cabc"
p 'xxbbxbb'.sub(/x+(b+)/, 'X<<\1>>') # => "X<<bb>>xbb"
//}

注意:

第 2 引数 replace に $1 を埋め込んでも意図した結果にはなりません...
...の可読性を上げるには、
\& や \1 よりも下記のようにブロック付き形式の sub を使うべきです。

//emlist[安全な例][ruby]{
p 'xbbb-xbbb'.sub(/x(b+)/) { $1 } # => "bbb-xbbb" # OK

puts '\n'.sub(/\\/) { '\\\\' } # => \\n # OK
//}

@
see String#gsub...

String#gsub(pattern) -> Enumerator (29.0)

文字列中で pattern にマッチした部分を順番にブロックに渡し、 その実行結果で置き換えた文字列を生成して返します。 ブロックなしの場合と違い、ブロックの中からは 組み込み変数 $1, $2, $3, ... を問題なく参照できます。

...$1, $2, $3, ... を問題なく参照できます。

@
param pattern 置き換える文字列のパターンを表す文字列か正規表現。
文字列を指定した場合は全く同じ文字列にだけマッチする
@
return 新しい文字列

//emlist[例][ruby]{
p 'ab...
...cabc'.gsub(/[bc]/) {|s| s.upcase } #=> "aBCaBC"
p 'abcabc'.gsub(/[bc]/) { $&.upcase } #=> "aBCaBC"
//}

@
see String#sub, String#scan...

String#gsub(pattern) {|matched| .... } -> String (29.0)

文字列中で pattern にマッチした部分を順番にブロックに渡し、 その実行結果で置き換えた文字列を生成して返します。 ブロックなしの場合と違い、ブロックの中からは 組み込み変数 $1, $2, $3, ... を問題なく参照できます。

...$1, $2, $3, ... を問題なく参照できます。

@
param pattern 置き換える文字列のパターンを表す文字列か正規表現。
文字列を指定した場合は全く同じ文字列にだけマッチする
@
return 新しい文字列

//emlist[例][ruby]{
p 'ab...
...cabc'.gsub(/[bc]/) {|s| s.upcase } #=> "aBCaBC"
p 'abcabc'.gsub(/[bc]/) { $&.upcase } #=> "aBCaBC"
//}

@
see String#sub, String#scan...
<< 1 2 3 > >>