別のキーワード
種類
- インスタンスメソッド (76)
- 変数 (24)
- クラス (22)
- 特異メソッド (12)
モジュール
- Kernel (24)
キーワード
-
$ -F (12) -
$ ; (12) - ConditionVariable (10)
- Lazy (12)
- pack (21)
- partition (12)
- rpartition (12)
- unpack (12)
検索結果
先頭5件
-
String
# split(sep = $ ; , limit = 0) -> [String] (18344.0) -
第 1 引数 sep で指定されたセパレータによって文字列を limit 個まで分割し、 結果を文字列の配列で返します。 ブロックを指定すると、配列を返す代わりに分割した文字列で ブロックを呼び出します。
...//emlist[例][ruby]{
p " a \t b \n c".split(/\s+/) # => ["", "a", "b", "c"]
p " a \t b \n c".split(nil) # => ["a", "b", "c"]
p " a \t b \n c".split(' ') # => ["a", "b", "c"] # split(nil) と同じ
p " a \t b \n c".split # => ["a", "b", "c"] # split(nil) と同じ
//......][ruby]{
p '1-10,20'.split(/([-,])/) # => ["1", "-", "10", ",", "20"]
//}
//emlist[正規表現が空文字列にマッチする場合は 1 文字に分割][ruby]{
p 'hi there'.split(/\s*/).join(':') # => "h:i:t:h:e:r:e"
//}
//emlist[文字列全体を 1 文字ずつに分割する例][ruby]{
p......e'.split(//).join(':') # => "h:i: :t:h:e:r:e"
//}
//emlist[limit == 0 だと制限なく分割、配列末尾の空文字列は取り除かれる][ruby]{
p "a,b,c,,,".split(/,/, 0) # => ["a", "b", "c"]
//}
//emlist[limit 省略時は 0 と同じ (最もよく使われるパターン)][ruby]{... -
String
# split(sep = $ ; , limit = 0) {|s| . . . } -> self (18344.0) -
第 1 引数 sep で指定されたセパレータによって文字列を limit 個まで分割し、 結果を文字列の配列で返します。 ブロックを指定すると、配列を返す代わりに分割した文字列で ブロックを呼び出します。
...//emlist[例][ruby]{
p " a \t b \n c".split(/\s+/) # => ["", "a", "b", "c"]
p " a \t b \n c".split(nil) # => ["a", "b", "c"]
p " a \t b \n c".split(' ') # => ["a", "b", "c"] # split(nil) と同じ
p " a \t b \n c".split # => ["a", "b", "c"] # split(nil) と同じ
//......][ruby]{
p '1-10,20'.split(/([-,])/) # => ["1", "-", "10", ",", "20"]
//}
//emlist[正規表現が空文字列にマッチする場合は 1 文字に分割][ruby]{
p 'hi there'.split(/\s*/).join(':') # => "h:i:t:h:e:r:e"
//}
//emlist[文字列全体を 1 文字ずつに分割する例][ruby]{
p......e'.split(//).join(':') # => "h:i: :t:h:e:r:e"
//}
//emlist[limit == 0 だと制限なく分割、配列末尾の空文字列は取り除かれる][ruby]{
p "a,b,c,,,".split(/,/, 0) # => ["a", "b", "c"]
//}
//emlist[limit 省略時は 0 と同じ (最もよく使われるパターン)][ruby]{... -
String
# split(sep = $ ; , limit = 0) -> [String] (18343.0) -
第 1 引数 sep で指定されたセパレータによって文字列を limit 個まで分割し、 結果を文字列の配列で返します。
...//emlist[例][ruby]{
p " a \t b \n c".split(/\s+/) # => ["", "a", "b", "c"]
p " a \t b \n c".split(nil) # => ["a", "b", "c"]
p " a \t b \n c".split(' ') # => ["a", "b", "c"] # split(nil) と同じ
p " a \t b \n c".split # => ["a", "b", "c"] # split(nil) と同じ
/......][ruby]{
p '1-10,20'.split(/([-,])/) # => ["1", "-", "10", ",", "20"]
//}
//emlist[正規表現が空文字列にマッチする場合は 1 文字に分割][ruby]{
p 'hi there'.split(/\s*/).join(':') # => "h:i:t:h:e:r:e"
//}
//emlist[文字列全体を 1 文字ずつに分割する例][ruby]{
p......e'.split(//).join(':') # => "h:i: :t:h:e:r:e"
//}
//emlist[limit == 0 だと制限なく分割、配列末尾の空文字列は取り除かれる][ruby]{
p "a,b,c,,,".split(/,/, 0) # => ["a", "b", "c"]
//}
//emlist[limit 省略時は 0 と同じ (最もよく使われるパターン)][ruby]{... -
File
. split(pathname) -> [String] (18115.0) -
pathname を dirname とbasename に分割して、2 要 素の配列を返します。
...pathname を dirname とbasename に分割して、2 要
素の配列を返します。
//emlist[][ruby]{
[File.dirname(pathname), File.basename(pathname)]
//}
と同じです。
@param pathname パス名を表す文字列を指定します。... -
Array
# pack(template) -> String (1202.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...いことに注意してください。
buffer のサイズ(capacity)が足りなければ、packはメモリを確保します。
//emlist[例][ruby]{
['!'].pack('@1a', buffer: 'abc') # => "a!"
['!'].pack('@5a', buffer: 'abc') # => "abc\u0000\u0000!"
//}
@param template 自身のバイナリと......][ruby]{
["abc"].pack("a") # => "a"
["abc"].pack("a*") # => "abc"
["abc"].pack("a4") # => "abc\x00"
"abc\0".unpack("a4") # => ["abc\x00"]
"abc ".unpack("a4") # => ["abc "]
//}
: A
ASCII文字列(スペースを詰める/後続するヌル文字やスペースを削除)
//emlist[][ruby]{......ist[][ruby]{
["abc"].pack("Z") # => "a"
["abc"].pack("Z*") # => "abc\x00"
["abc"].pack("Z5") # => "abc\x00\x00"
"abc\0".unpack("Z4") # => ["abc"]
"abc ".unpack("Z4") # => ["abc "]
//}
: b
ビットストリング(各バイトごとに下位ビットから上位ビット)
//emlist[][ruby]{
"\x... -
Array
# pack(template , buffer: String . new) -> String (1202.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...いことに注意してください。
buffer のサイズ(capacity)が足りなければ、packはメモリを確保します。
//emlist[例][ruby]{
['!'].pack('@1a', buffer: 'abc') # => "a!"
['!'].pack('@5a', buffer: 'abc') # => "abc\u0000\u0000!"
//}
@param template 自身のバイナリと......][ruby]{
["abc"].pack("a") # => "a"
["abc"].pack("a*") # => "abc"
["abc"].pack("a4") # => "abc\x00"
"abc\0".unpack("a4") # => ["abc\x00"]
"abc ".unpack("a4") # => ["abc "]
//}
: A
ASCII文字列(スペースを詰める/後続するヌル文字やスペースを削除)
//emlist[][ruby]{......ist[][ruby]{
["abc"].pack("Z") # => "a"
["abc"].pack("Z*") # => "abc\x00"
["abc"].pack("Z5") # => "abc\x00\x00"
"abc\0".unpack("Z4") # => ["abc"]
"abc ".unpack("Z4") # => ["abc "]
//}
: b
ビットストリング(各バイトごとに下位ビットから上位ビット)
//emlist[][ruby]{
"\x... -
Array
# pack(template) -> String (1190.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...][ruby]{
["abc"].pack("a") # => "a"
["abc"].pack("a*") # => "abc"
["abc"].pack("a4") # => "abc\x00"
"abc\0".unpack("a4") # => ["abc\x00"]
"abc ".unpack("a4") # => ["abc "]
//}
: A
ASCII文字列(スペースを詰める/後続するヌル文字やスペースを削除)
//emlist[][ruby]{......ist[][ruby]{
["abc"].pack("Z") # => "a"
["abc"].pack("Z*") # => "abc\x00"
["abc"].pack("Z5") # => "abc\x00\x00"
"abc\0".unpack("Z4") # => ["abc"]
"abc ".unpack("Z4") # => ["abc "]
//}
: b
ビットストリング(各バイトごとに下位ビットから上位ビット)
//emlist[][ruby]{
"\x......00001000000"].pack("b*") # => "\x01\x02"
//}
: B
ビットストリング(各バイトごとに上位ビットから下位ビット)
//emlist[][ruby]{
"\xFF\x00".unpack("B*") # => ["1111111100000000"]
"\x01\x02".unpack("B*") # => ["0000000100000010"]
"\x01\x02".unpack("B9") # => ["000000010"]... -
String
# unpack(template) -> Array (1190.0) -
Array#pack で生成された文字列を テンプレート文字列 template にしたがってアンパックし、 それらの要素を含む配列を返します。
...][ruby]{
["abc"].pack("a") # => "a"
["abc"].pack("a*") # => "abc"
["abc"].pack("a4") # => "abc\x00"
"abc\0".unpack("a4") # => ["abc\x00"]
"abc ".unpack("a4") # => ["abc "]
//}
: A
ASCII文字列(スペースを詰める/後続するヌル文字やスペースを削除)
//emlist[][ruby]{......ist[][ruby]{
["abc"].pack("Z") # => "a"
["abc"].pack("Z*") # => "abc\x00"
["abc"].pack("Z5") # => "abc\x00\x00"
"abc\0".unpack("Z4") # => ["abc"]
"abc ".unpack("Z4") # => ["abc "]
//}
: b
ビットストリング(各バイトごとに下位ビットから上位ビット)
//emlist[][ruby]{
"\x......00001000000"].pack("b*") # => "\x01\x02"
//}
: B
ビットストリング(各バイトごとに上位ビットから下位ビット)
//emlist[][ruby]{
"\xFF\x00".unpack("B*") # => ["1111111100000000"]
"\x01\x02".unpack("B*") # => ["0000000100000010"]
"\x01\x02".unpack("B9") # => ["000000010"]... -
Kernel
$ $ -F -> Regexp | String | nil (66.0) -
String#split で引数を省略した場合の区切り文字です。
...g#split で引数を省略した場合の区切り文字です。
Ruby 2.7からは nil 以外に変更することは非推奨になったため、
nil 以外を代入すると警告がでるようになりました。
nilを設定すると特殊な分割を行います。
詳細は String#split...... Ruby を起動した場合、
初期値は -F で指定した値です。
それ以外の時には初期値は nil です。
$; には任意のオブジェクトを代入できます。
ただし、String#split の仕様変更を考慮すると
常に正規表現を指定すべきです。
Ruby......のバージョンによらず動作するプログラムを書くときは
$; に頼らないコードを書くべきです。
この変数はグローバルスコープです。
@see spec/rubycmd... -
Kernel
$ $ ; -> Regexp | String | nil (66.0) -
String#split で引数を省略した場合の区切り文字です。
...g#split で引数を省略した場合の区切り文字です。
Ruby 2.7からは nil 以外に変更することは非推奨になったため、
nil 以外を代入すると警告がでるようになりました。
nilを設定すると特殊な分割を行います。
詳細は String#split...... Ruby を起動した場合、
初期値は -F で指定した値です。
それ以外の時には初期値は nil です。
$; には任意のオブジェクトを代入できます。
ただし、String#split の仕様変更を考慮すると
常に正規表現を指定すべきです。
Ruby......のバージョンによらず動作するプログラムを書くときは
$; に頼らないコードを書くべきです。
この変数はグローバルスコープです。
@see spec/rubycmd... -
Thread
:: ConditionVariable (44.0) -
スレッドの同期機構の一つである状態変数を実現するクラスです。
...る状態変数を実現するクラスです。
以下も ConditionVariable を理解するのに参考になります。
https://ruby-doc.com/docs/ProgrammingRuby/html/tut_threads.html#UF
=== Condition Variable とは
あるスレッド A が排他領域で動いていたとします。スレ......end
alias send enq
alias recv deq
end
if __FILE__ == $0
q = TinyQueue.new(1)
foods = 'Apple Banana Strawberry Udon Rice Milk'.split
l = []
th = Thread.new {
for obj in foods
q.send(obj)
print "sent ", obj, "\n"
end
q.send nil
}......v ", obj, "\n"
end
}
l.push th
l.each do |t|
t.join
end
end
実行すると以下のように出力します。
$ ruby condvar.rb
sent Apple
recv Apple
sent Banana
recv Banana
sent Strawberry
recv Strawberry
sent Udon
recv Udon
sent Rice
recv Ri... -
Enumerator
:: Lazy (26.0) -
map や select などのメソッドの遅延評価版を提供するためのクラス。
...て生成されます。
Lazyから値を取り出すには、Enumerator::Lazy#force または
Enumerable#first を呼びます。
//emlist[例][ruby]{
# 二乗して偶数になるような整数を、小さい方から5個表示する
p 1.step.lazy.select{|n| (n**2).even?}.first(5)
# LTSV (http:......、
# 巨大な配列を確保しようとしてメモリを使い切ったりはしない
open("log.txt"){|f|
f.each_line.lazy.map{|line|
Hash[line.split(/\t/).map{|s| s.split(/:/, 2)}]
}.select{|hash|
hash["req"] =~ /GET/ && hash["status"] == "200"
}.each{|hash|
p hash
}
}
//}...