るりまサーチ

最速Rubyリファレンスマニュアル検索!
392件ヒット [1-100件を表示] (0.135秒)
トップページ > クエリ:i[x] > クエリ:end[x] > クエリ:yield[x]

別のキーワード

  1. _builtin to_i
  2. fiddle to_i
  3. matrix elements_to_i
  4. ipaddr to_i
  5. kernel $-i

検索結果

<< 1 2 3 ... > >>

Enumerator::Yielder#yield(*object) -> () (30231.0)

Enumerator.new で使うメソッドです。

...を呼ぶと
Enumerator::Yielder オブジェクトが渡されたブロックが実行され、
ブロック内の yield メソッドが呼ばれるたびに each に渡された
ブロックが yield メソッドに渡された値とともに繰り返されます。

//emlist[例][ruby]{
enum = En...
...umerator.new do |y|
y.yield 1, 2, 3
end


enum.each do |x, y, z|
p [x, y, z]
end

# => [1, 2, 3]
//}...

Fiber.yield(*arg = nil) -> object (24219.0)

現在のファイバーの親にコンテキストを切り替えます。

...際に Fiber#resume に与えられた引数を yield メソッドは返します。

@param arg 現在のファイバーの親に渡したいオブジェクトを指定します。

@raise FiberError Fiber でのルートファイバーで呼ばれた場合に発生します。


//emlist[例:][rub...
...y]{
a = nil
f = Fiber.new do
a = Fiber.yield()
end


f.resume()
f.resume(:foo)

p a #=> :foo
//}...

Proc#yield(*arg) -> () (18219.0)

手続きオブジェクトを実行してその結果を返します。

...です。

//emlist[例][ruby]{
def sign(n)
case n
when lambda{|n| n > 0} then 1
when lambda{|n| n < 0} then -1
else 0
end

end


p sign(-4) #=> -1
p sign(0) #=> 0
p sign(7) #=> 1
//}

また、以下のような syntactic sugar もあります。

//emlist[例][ruby]{
fib = lambda{|n|
c...
...ase n
when 0 then 0
when 1 then 1
else
fib.(n - 2) + fib.(n - 1)
end

}
fib.(10) # => 55
//}



@param arg 手続きオブジェクトに与える引数を指定します。

@raise LocalJumpError Procを生成したメソッドからリターンしてしまった場合に発生します...

Exception#backtrace_locations -> [Thread::Backtrace::Location] (9224.0)

バックトレース情報を返します。Exception#backtraceに似ていますが、 Thread::Backtrace::Location の配列を返す点が異なります。

...ception#backtraceに似ていますが、
Thread::Backtrace::Location の配列を返す点が異なります。

現状では Exception#set_backtrace によって戻り値が変化する事はあり
ません。

//emlist[例: test.rb][ruby]{
require "date"
def check_long_month(month)
return if D...
...aise "#{month} is not long month"
end


def get_exception
return begin
yield

rescue => e
e
end

end


e = get_exception { check_long_month(2) }
p e.backtrace_locations
# => ["test.rb:4:in `check_long_month'", "test.rb:15:in `block in <main>'", "test.rb:9:in `get_exception'", "test.rb:15:i...
...n `<main>'"]
//}

@see Exception#backtrace...

メソッド呼び出し(super・ブロック付き・yield) (6397.0)

メソッド呼び出し(super・ブロック付き・yield) * super * block * yield * block_arg * numbered_parameters * call_method

...メソッド呼び出し(super・ブロック付き・yield)
* super
* block
* yield
* block_arg
* numbered_parameters
* call_method

//emlist[例][ruby]{
foo.bar()
foo.bar
bar()
print "hello world\n"
print
Class.new
Class::new
//}

文法:

[式 `.'] 識別子 [`(' [[`*']...
...`.' と `::' とはほぼ同じ意味です。但し、定数を表す場合は、
`::' を使わなければいけません(例: Math::PI)。逆に、

//emlist[][ruby]{
Klass::Foo
//}

とした場合、常に定数と見なされるという制限があります。
`::' を、クラスメソッ...
...渡さずにオーバーライドしたメソッドを呼び出すには
super() と括弧を明示します。

//emlist[例][ruby]{
class Foo
def foo(arg=nil)
p arg
end

end


class Bar < Foo
def foo(arg)
super(5) # 5 を引数にして呼び出す
super(arg) # 5 を引...

絞り込み条件を変える

Fiber#raise -> object (6146.0)

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

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

Fiber.yield が呼ばれていないかファイバーがすでに終了している場合、
FiberError が発生します。

引数を渡さない場合、RuntimeError が発生します。
message...
...引数を渡した場合、message 引数をメッセージとした RuntimeError
が発生します。

その他のケースでは、最初の引数は Exception か Exception
のインスタンスを返す exception メソッドを持ったオブジェクトである
必要があります。
...
...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 (6146.0)

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

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

Fiber.yield が呼ばれていないかファイバーがすでに終了している場合、
FiberError が発生します。

引数を渡さない場合、RuntimeError が発生します。
message...
...引数を渡した場合、message 引数をメッセージとした RuntimeError
が発生します。

その他のケースでは、最初の引数は Exception か Exception
のインスタンスを返す exception メソッドを持ったオブジェクトである
必要があります。
...
...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 (6146.0)

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

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

Fiber.yield が呼ばれていないかファイバーがすでに終了している場合、
FiberError が発生します。

引数を渡さない場合、RuntimeError が発生します。
message...
...引数を渡した場合、message 引数をメッセージとした RuntimeError
が発生します。

その他のケースでは、最初の引数は Exception か Exception
のインスタンスを返す exception メソッドを持ったオブジェクトである
必要があります。
...
...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 (6090.0)

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

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

Thread クラ...
...のファイバーへ切り替えるような処理)はできません。
例外 FiberError が発生します。
できることは
* Fiber#resume により子へコンテキストを切り替える
* Fiber.yield により親へコンテキストを切り替える
の二通りです。この親...
...合、親ファイバーに例外が伝播します。

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


begin
f.resume # ここでも StandardError が発生する。
rescue => e
p e.message #=> "hoge"
end

//}

=== ショートチュートリアル

ファイバーは...

Enumerator::Yielder#to_proc -> Proc (6030.0)

Enumerator.new で使うメソッドです。

...tor::Yielder#yield に渡す Proc を返します。
これは Enumerator::Yielder オブジェクトを他のメソッドにブロック引数と
して直接渡すために使えます。

//emlist[例][ruby]{
text = <<-END
Hello
こんにちは
END


enum = Enumerator.new do |y|
text.each_line(&...
...y)
end

enum.each do |line|
p line
end

# => "Hello\n"
# "こんにちは\n"
//}...

絞り込み条件を変える

Continuation (6012.0)

継続を表すクラスです。

...カル変数の定義、スタックフレーム)を cont に記憶
してブロックを実行します。cont は、Continuation クラスのインスタ
ンスで、Continuation#call メソッドを実行するこ
とでいつでも記憶した状態を継続することができます。

C 言...
...戻り値を返しますが、Continuation#call(args)
が呼び出されたときは args を返します。

例:

以下は、Continuationによる無限ループの例

def LOOP
c = nil
yield
callcc {|cnt| c = cnt; true }
c.call(false)
end


LOOP {|v| p v}

=> true...
...false
false
false
:
:

callcc とは、call-with-current-continuation の略です。...

Enumerator::Yielder#<<(object) -> () (6012.0)

Enumerator.new で使うメソッドです。

...r::Yielder オブジェクトが渡されたブロックが実行され、
ブロック内の << が呼ばれるたびに each に渡されたブロックが
<< に渡された値とともに繰り返されます。

//emlist[例][ruby]{
enum = Enumerator.new do |y|
y << 1
y << 2
y << 3
end


e...
...num.each do |v|
p v
end

# => 1
# 2
# 3
//}...
<< 1 2 3 ... > >>