クラス
キーワード
- match (24)
-
recvfrom
_ nonblock (12) - select (12)
- sysaccept (12)
検索結果
先頭5件
-
GDBM
# values _ at(*keys) -> [String] (21214.0) -
keys に対応する値を配列に格納して返します。
...格納して返します。
@param keys キー。複数指定可能です。
require 'gdbm'
db1 = GDBM.open('aaa.gdbm', 0666, GDBM::NEWDB)
db1['a'] = 'aaa'
db1['b'] = 'bbb'
db1['c'] = 'ccc'
p db1.values_at('a', 'b') #=> ["aaa", "bbb"]
p db1.values_at('x', 'y') #=> [nil, nil]... -
MatchData
# values _ at(*index) -> [String] (18232.0) -
正規表現中の n 番目の括弧にマッチした部分文字列の配列を返します。
...to_a.values_at(...)
p m.values_at(0, 1, 2, 3, 4) # => ["foobarbaz", "foo", "bar", "baz", nil]
p m.values_at(-1, -2, -3, -4, -5) # => ["baz", "bar", "foo", nil, nil]
m = /(?<a>\d+) *(?<op>[+\-*\/]) *(?<b>\d+)/.match("1 + 2")
m.to_a # => ["1 + 2", "1", "+", "2"]
m.values_at(:a,......:b, :op) # => ["1", "2", "+"]
//}
@see Array#values_at, Array#[]... -
DBM
# values _ at(*keys) -> [String] (18208.0) -
keys に対応する値を配列に格納して返します。
...keys に対応する値を配列に格納して返します。
@param keys キー。複数指定可能です。
require 'dbm'
db1 = DBM.open('aaa.db', 0666, DBM::NEWDB)
db1[:a] = 'aaa'
db1[:b] = 'bbbbbb'
p db1.values_at('a', 'b') #=> ["aaa", "bbbbbb"]... -
SDBM
# values _ at(*keys) -> [String] (18208.0) -
keys に対応する値を配列に格納して返します。
...keys に対応する値を配列に格納して返します。
@param keys キー。複数指定可能です。
require 'sdbm'
db1 = SDBM.open('aaa.gdbm', 0666)
db1['a'] = 'aaa'
db1['b'] = 'bbb'
db1['c'] = 'ccc'
p db1.values_at('a', 'b') #=> ["aaa", "bbb"]... -
Regexp
# match(str , pos = 0) -> MatchData | nil (3013.0) -
指定された文字列 str に対して位置 pos から自身が表す正規表現によるマッ チングを行います。マッチした場合には結果を MatchData オブジェクトで返し ます。 マッチしなかった場合 nil を返します。
...ルト値は 0)。
//emlist[例][ruby]{
reg = Regexp.new("foo")
if reg.match("foobar")
puts "match"
end
# => match
p reg.match("foobar") # => #<MatchData:0x29403fc>
p reg.match("bar") # => nil
p /(foo)(bar)(baz)/.match("foobarbaz").to_a.values_at(1,2,3) # => ["foo", "bar", "baz"]
//}
===......必要な場合に、
//emlist[][ruby]{
bar = /foo(.*)baz/.match("foobarbaz").to_a[1]
foo, bar, baz = /(foo)(bar)(baz)/.match("foobarbaz").to_a.values_at(1,2,3)
//}
のように使用できます。(to_a は、マッチに失敗した場合を考慮しています。)
多重代入の規則では......に失敗した場合、
nil.captures を呼び出そうとして例外 NoMethodError が発生して
しまいます。
//emlist[例][ruby]{
foo, bar, baz = /(foo)(bar)(baz)/.match("foobar").captures
# => -:1: undefined method `captures' for nil:NilClass (NoMethodError)
//}
@see Regexp#match?... -
Regexp
# match(str , pos = 0) {|m| . . . } -> object | nil (3013.0) -
指定された文字列 str に対して位置 pos から自身が表す正規表現によるマッ チングを行います。マッチした場合には結果を MatchData オブジェクトで返し ます。 マッチしなかった場合 nil を返します。
...ルト値は 0)。
//emlist[例][ruby]{
reg = Regexp.new("foo")
if reg.match("foobar")
puts "match"
end
# => match
p reg.match("foobar") # => #<MatchData:0x29403fc>
p reg.match("bar") # => nil
p /(foo)(bar)(baz)/.match("foobarbaz").to_a.values_at(1,2,3) # => ["foo", "bar", "baz"]
//}
===......必要な場合に、
//emlist[][ruby]{
bar = /foo(.*)baz/.match("foobarbaz").to_a[1]
foo, bar, baz = /(foo)(bar)(baz)/.match("foobarbaz").to_a.values_at(1,2,3)
//}
のように使用できます。(to_a は、マッチに失敗した場合を考慮しています。)
多重代入の規則では......に失敗した場合、
nil.captures を呼び出そうとして例外 NoMethodError が発生して
しまいます。
//emlist[例][ruby]{
foo, bar, baz = /(foo)(bar)(baz)/.match("foobar").captures
# => -:1: undefined method `captures' for nil:NilClass (NoMethodError)
//}
@see Regexp#match?... -
UDPSocket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Array] (113.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) でソケットからデータを受け取ります。
...flags はフラグで、Socket::MSG_* の bitwise OR を渡します。
詳しくは recvfrom(2) を参照してください。
返り値はデータの文字列と送り元のアドレス情報の
2要素の配列となります。
recvfrom(2) がエラーになった場合、
Errno::EAGAIN, Er......rno::EINTR を含め例外 Errno::EXXX が発生します。
Errno::EWOULDBLOCK、Errno::EAGAIN のような待ってからリトライすることが
可能であることを意味する例外には、IO::WaitReadable が extend
されています。
require 'socket'
s1 = UDPSocket.new
s1.bi......7.0.0.1", 0)
s2 = UDPSocket.new
s2.bind("127.0.0.1", 0)
s2.connect(*s1.addr.values_at(3,1))
s1.connect(*s2.addr.values_at(3,1))
s1.send "aaa", 0
begin # emulate blocking recvfrom
p s2.recvfrom_nonblock(10)
#=> ["aaa", ["AF_INET", 33302, "localhost.localdomain", "127.0.0.1"]]... -
TCPServer
# sysaccept -> Integer (107.0) -
接続したクライアントのソケットをファイル記述子で返すことを除けば TCPServer#accept と同じです。
...接続したクライアントのソケットをファイル記述子で返すことを除けば
TCPServer#accept と同じです。
例:
require 'socket'
TCPServer.open("", 0) {|serv|
c = TCPSocket.new(*serv.addr.values_at(3,1))
p serv.sysaccept #=> 6
}... -
YAML
:: DBM # select { . . . } -> [[String , object]] (107.0) -
ブロックを評価して真になった要素のみを [キー, 値] から構成される配列に 格納して返します。ブロックが与えられなかった場合は、keys に対応する値を 配列に格納して返します。
...った場合は、keys に対応する値を
配列に格納して返します。
@param keys キーを文字列で指定します。複数指定することができます。
ブロックを与えるかどうかで戻り値が異なる事に注意してください。
@see YAML::DBM#values_at...