るりまサーチ

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

別のキーワード

  1. rbconfig ruby
  2. fiddle ruby_free
  3. fiddle build_ruby_platform
  4. rake ruby
  5. rubygems/defaults ruby_engine

クラス

モジュール

キーワード

検索結果

<< 1 2 > >>

Kernel.#loop -> Enumerator (18140.0)

(中断されない限り)永遠にブロックの評価を繰り返します。 ブロックが指定されなければ、代わりに Enumerator を返します。

...ロックの評価を繰り返します。
ブロックが指定されなければ、代わりに Enumerator を返します。

//emlist[例][ruby]{
loop
do
print "Input: "
line = gets
break if !line or line =~ /^qQ/
# ...
end
//}

与えられたブロック内で StopIteration を Kernel....
...ます。
ループを終了させる場合、通常は break を使用してください。

//emlist[例][ruby]{
enum = Enumerator.new { |y|
y << "one"
y << "two"
:ok
}

result = loop {
puts enum.next
} # => :ok
//}


@return break の引数など、ループ脱出時の値を返します...

Kernel.#loop { ... } -> object | nil (18140.0)

(中断されない限り)永遠にブロックの評価を繰り返します。 ブロックが指定されなければ、代わりに Enumerator を返します。

...ロックの評価を繰り返します。
ブロックが指定されなければ、代わりに Enumerator を返します。

//emlist[例][ruby]{
loop
do
print "Input: "
line = gets
break if !line or line =~ /^qQ/
# ...
end
//}

与えられたブロック内で StopIteration を Kernel....
...ます。
ループを終了させる場合、通常は break を使用してください。

//emlist[例][ruby]{
enum = Enumerator.new { |y|
y << "one"
y << "two"
:ok
}

result = loop {
puts enum.next
} # => :ok
//}


@return break の引数など、ループ脱出時の値を返します...

Kernel.#loop -> Enumerator (18122.0)

(中断されない限り)永遠にブロックの評価を繰り返します。 ブロックが指定されなければ、代わりに Enumerator を返します。

...ロックの評価を繰り返します。
ブロックが指定されなければ、代わりに Enumerator を返します。

//emlist[例][ruby]{
loop
do
print "Input: "
line = gets
break if !line or line =~ /^qQ/
# ...
end
//}

与えられたブロック内で StopIteration を Kernel....

Kernel.#loop { ... } -> object | nil (18122.0)

(中断されない限り)永遠にブロックの評価を繰り返します。 ブロックが指定されなければ、代わりに Enumerator を返します。

...ロックの評価を繰り返します。
ブロックが指定されなければ、代わりに Enumerator を返します。

//emlist[例][ruby]{
loop
do
print "Input: "
line = gets
break if !line or line =~ /^qQ/
# ...
end
//}

与えられたブロック内で StopIteration を Kernel....

Fiber (68.0)

ノンプリエンプティブな軽量スレッド(以下ファイバーと呼ぶ)を提供します。 他の言語では coroutine あるいは semicoroutine と呼ばれることもあります。 Thread と違いユーザレベルスレッドとして実装されています。

...きます。

=== 例外

ファイバー実行中に例外が発生した場合、親ファイバーに例外が伝播します。

//emlist[例:][ruby]{
f = Fiber.new do
raise StandardError, "hoge"
end

begin
f.resume # ここでも StandardError が発生する。
rescue => e
p e.message #...
...キストを切り替えます。
Fiber.yield の引数が、親での Fiber#resume の返り値になります。
//emlist[例:][ruby]{
f = Fiber.new do
n = 0
loop
do
Fiber.yield(n)
n += 1
end
end

5.times do
p f.resume
end

#=> 0
1
2
3
4
//}

以下は内部イテレ...
...ータを外部イテレータに変換する例です。
実際 Enumerator は Fiber を用いて実装されています。

//emlist[例:][ruby]{
def enum2gen(enum)
Fiber.new do
enum.each{|i|
Fiber.yield(i)
}
end
end

g = enum2gen(1..100)

p g.resume #=> 1
p g.resume #=> 2
p...
...ストを切り替えた時点で解消されます。

ファイバーが終了するとその親にコンテキストが切り替わります。

Ruby
3.1 から fiber を require しなくても、
コンテキストの切り替えに制限のない Fiber#transfer が使えます。
任意のフ...

絞り込み条件を変える

Enumerator#next -> object (50.0)

「次」のオブジェクトを返します。

...に最後へ到達しているとき
@see Enumerator#rewind

//emlist[例1][ruby]{
str = "xyz"
enum = str.each_byte

str.bytesize.times do
puts enum.next
end
# => 120
# 121
# 122
//}

//emlist[例2][ruby]{
str = "xyz"
enum = str.each_byte

begin
puts enum.next while true
rescue...
...121
# 122
# iteration reached at end
puts enum.next
#=> 再度 StopIteration 例外が発生
//}

//emlist[例3: Kernel.#loop は StopIteration を捕捉します。][ruby]{
str = "xyz"
enum = str.each_byte
loop
do
puts enum.next
end
# => 120
# 121
# 122
//}...

Fiber#raise -> object (44.0)

selfが表すファイバーが最後に Fiber.yield を呼んだ場所で例外を発生させます。

...mlist[例][ruby]{
f = Fiber.new { Fiber.yield }
f.resume
f.raise "Error!" # => Error! (RuntimeError)
//}

//emlist[ファイバー内のイテレーションを終了させる例][ruby]{
f = Fiber.new do
loop
do
Fiber.yield(:loop)
end
:exit
end

p f.resume # => :loop
p f.raise...

Fiber#raise(exception, message = nil, backtrace = nil) -> object (44.0)

selfが表すファイバーが最後に Fiber.yield を呼んだ場所で例外を発生させます。

...mlist[例][ruby]{
f = Fiber.new { Fiber.yield }
f.resume
f.raise "Error!" # => Error! (RuntimeError)
//}

//emlist[ファイバー内のイテレーションを終了させる例][ruby]{
f = Fiber.new do
loop
do
Fiber.yield(:loop)
end
:exit
end

p f.resume # => :loop
p f.raise...

Fiber#raise(message) -> object (44.0)

selfが表すファイバーが最後に Fiber.yield を呼んだ場所で例外を発生させます。

...mlist[例][ruby]{
f = Fiber.new { Fiber.yield }
f.resume
f.raise "Error!" # => Error! (RuntimeError)
//}

//emlist[ファイバー内のイテレーションを終了させる例][ruby]{
f = Fiber.new do
loop
do
Fiber.yield(:loop)
end
:exit
end

p f.resume # => :loop
p f.raise...

Thread#priority -> Integer (26.0)

スレッドの優先度を返します。この値が大きいほど優先度が高くなります。 メインスレッドのデフォルト値は 0 です。新しく生成されたスレッドは親スレッドの priority を引き継ぎます。

...ます。プラットフォームに依存します。

//emlist[例][ruby]{
Thread.current.priority # => 0

count1 = count2 = 0
a = Thread.new do
loop
{ count1 += 1 }
end
a.priority = -1

b = Thread.new do
loop
{ count2 += 1 }
end
b.priority = -2
count1 = count2 = 0 # reset
sl...

絞り込み条件を変える

Thread#priority=(val) (26.0)

スレッドの優先度を返します。この値が大きいほど優先度が高くなります。 メインスレッドのデフォルト値は 0 です。新しく生成されたスレッドは親スレッドの priority を引き継ぎます。

...ます。プラットフォームに依存します。

//emlist[例][ruby]{
Thread.current.priority # => 0

count1 = count2 = 0
a = Thread.new do
loop
{ count1 += 1 }
end
a.priority = -1

b = Thread.new do
loop
{ count2 += 1 }
end
b.priority = -2
count1 = count2 = 0 # reset
sl...

Enumerator.new(size=nil) {|y| ... } -> Enumerator (22.0)

Enumerator オブジェクトを生成して返します。与えられたブロックは Enumerator::Yielder オブジェクトを 引数として実行されます。

...ze の実
行時に参照されます。

//emlist[例][ruby]{
enum = Enumerator.new{|y|
(1..10).each{|i|
y << i if i % 5 == 0
}
}
enum.each{|i| p i }

#=> 5
# 10


fib = Enumerator.new { |y|
a = b = 1
loop
{
y << a
a, b = b, a + b
}
}

p fib.take(10) #=> [1, 1,...

Enumerator#size -> Integer | Float::INFINITY | nil (20.0)

self の要素数を返します。

...いた場合はその
実行結果を返します。呼び出した時に要素数が不明であった場合は nil を返し
ます。

//emlist[例][ruby]{
(1..100).to_a.permutation(4).size # => 94109400
loop
.size # => Float::INFINITY
(1..100).drop_while.size # => nil
//}

@see Enumerator.new...
<< 1 2 > >>