るりまサーチ

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

別のキーワード

  1. _builtin gets
  2. irb/input-method gets
  3. io gets
  4. argf.class gets
  5. csv gets

ライブラリ

モジュール

キーワード

検索結果

Kernel.#loop -> Enumerator (18120.0)

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

Kernel.#loop -> Enumerator (18114.0)

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

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

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

与えられたブロック内で StopIteration を Kernel.#raise すると
...

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

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

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

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

与えられたブロック内で StopIteration を Kernel.#raise すると
...

Timeout.#timeout(sec, exception_class = nil) {|i| ... } -> object (36.0)

ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。

...イムアウトした時、発生させる例外を指定します.

例 長い計算のタイムアウト
require 'timeout'

def calc_pi(min)
loop
do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end

t = 5
min = [ 0, 0]
begin
Timeou...
...工夫が必要です。

例 外部コマンドのタイムアウト
require 'timeout'

# テスト用のシェルをつくる。
File.open("loop.sh", "w"){|fp|
fp.print <<SHELL_EOT
#!/bin/bash

S="scale=10"
M=32767

trap 'echo "$S; $m1/($m1+$m2)*4" | bc ; echo "count = $((m1+m2))...
...File.chmod(0755, "loop.sh")
t = 10 # 10 秒でタイムアウト
begin
pid = nil
com = nil
Timeout.timeout(t) {
# system だととまらない
# system("./loop.sh")
com = IO.popen("./loop.sh")
pid = com.pid
while line = com.gets
print line...
...した場合は
"execution expired" になります.

例 長い計算のタイムアウト
require 'timeout'

def calc_pi(min)
loop
do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end

t = 5
min = [ 0, 0]
begin
Timeou...

絞り込み条件を変える

Timeout.#timeout(sec, exception_class, message) {|i| ... } -> object (36.0)

ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。

...した場合は
"execution expired" になります.

例 長い計算のタイムアウト
require 'timeout'

def calc_pi(min)
loop
do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end

t = 5
min = [ 0, 0]
begin
Timeou...
...工夫が必要です。

例 外部コマンドのタイムアウト
require 'timeout'

# テスト用のシェルをつくる。
File.open("loop.sh", "w"){|fp|
fp.print <<SHELL_EOT
#!/bin/bash

S="scale=10"
M=32767

trap 'echo "$S; $m1/($m1+$m2)*4" | bc ; echo "count = $((m1+m2))...
...File.chmod(0755, "loop.sh")
t = 10 # 10 秒でタイムアウト
begin
pid = nil
com = nil
Timeout.timeout(t) {
# system だととまらない
# system("./loop.sh")
com = IO.popen("./loop.sh")
pid = com.pid
while line = com.gets
print line...

制御構造 (18.0)

制御構造 条件分岐: * if * unless * case 繰り返し: * while * until * for * break * next * redo * retry 例外処理: * raise * begin その他: * return * BEGIN * END

...while 修飾した式の戻り値を
その値にすることもできます。

====[a:until] until

//emlist[例][ruby]{
until f.eof?
print f.gets
end
//}

文法:
until 式 [do]
...
end

式を評価した値が真になるまで、本体を繰り返して実...
...を伴った break により
until 式の戻り値をその値にすることもできます。

==== until修飾子

//emlist[例][ruby]{
print(f.gets) until f.eof?
//}

文法:
式 until 式

右辺の式を評価した値が真になるまで、左辺を繰り返して実行しま
...
...unexpected keyword_BEGIN

class Foo
BEGIN { p "begin" }
end
# => -e:2: syntax error, unexpected keyword_BEGIN

loop
do
BEGIN { p "begin" }
end
# => -e:2: syntax error, unexpected keyword_BEGIN

====[a:END] END

//emlist[例][ruby]{...

Monitor (12.0)

スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。

...[]
mon = Monitor.new
empty_cond = mon.new_cond

# consumer
Thread.start do
loop
do
mon.synchronize do
empty_cond.wait_while { buf.empty? }
print buf.shift
end
end
end

# producer
while line = ARGF.gets
mon.synchronize do
buf.push(line)
empty_cond.signal
end
end
/...

MonitorMixin (12.0)

スレッドの同期機構としてのモニター機能を提供するモジュールです。

...列にモニタ機能を追加
empty_cond = buf.new_cond # 配列が空であるかないかを通知する条件変数

# consumer
Thread.start do
loop
do
buf.synchronize do # ロックする
empty_cond.wait_while { buf.empty? } # 配列が空である間はロックを開放して待...
...# 配列が空でなくなった後ロックを取得してこの行を実行
end # ロックを開放
end
end

# producer
while line = ARGF.gets
buf.synchronize do # ロックする
buf.push(line) # 配列を変更(追加)
empty_cond.signal # 配列に要素が追加されたこと...

ruby 1.6 feature (12.0)

ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。

...=> ruby 1.6.7 (2002-03-01) [i586-linux]
true
=> ruby 1.6.7 (2002-08-21) [i586-linux]
false

# : 2002-08-01 IO#read, gets ..., etc.
#
# File::NONBLOCK を指定した IO の読み込みで EWOULDBLOCK が発生すると、
# 途中まで読んだデータが失...
...ていました。
((<ruby-dev:14743>))

def foo(t)
t.run
end

t = Thread.start do
t = $_= "sub"
loop
{Thread.stop;puts "sub:#$_"}
end

$_ = "main"
t.run # => sub:sub
puts "main:#$_" # =>...

絞り込み条件を変える