別のキーワード
クラス
- CSV (36)
- Date (24)
-
Encoding
:: Converter (12) - Enumerator (78)
- Float (22)
- Integer (36)
- Object (30)
-
Prime
:: EratosthenesGenerator (36) -
REXML
:: Child (24) -
REXML
:: Element (12) -
RubyVM
:: InstructionSequence (36) - String (48)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) - >> (12)
- Enumerator (12)
-
NEWS for Ruby 2
. 0 . 0 (12) -
NEWS for Ruby 2
. 2 . 0 (11) -
NEWS for Ruby 2
. 7 . 0 (6) -
NEWS for Ruby 3
. 0 . 0 (5) - Numeric (12)
- Proc (12)
- Ruby プログラムの実行 (12)
- debug (12)
- disasm (12)
- disassemble (12)
- feed (12)
- filter (36)
- lambda (18)
- load (15)
- loop (20)
- next! (12)
-
next
_ element (12) -
next
_ float (11) -
next
_ sibling= (12) -
next
_ values (12) -
next
_ year (12) - parse (12)
- peek (12)
-
peek
_ values (12) - pred (12)
-
prev
_ float (11) -
previous
_ sibling= (12) -
primitive
_ errinfo (12) - proc (19)
- produce (6)
- rewind (24)
-
rexml
/ parsers / pullparser (12) -
ruby 1
. 8 . 4 feature (12) - succ (36)
- succ! (12)
- then (14)
-
to
_ a (12) -
yield
_ self (16) - プログラム・文・式 (12)
- メソッド呼び出し(super・ブロック付き・yield) (12)
- リテラル (12)
- 制御構造 (12)
- 字句構造 (12)
- 手続きオブジェクトの挙動の詳細 (12)
検索結果
-
Enumerator
# peek -> object (54.0) -
「次」のオブジェクトを返しますが、列挙状態を変化させません。
...Enumerator#next のように
現在までの列挙状態に応じて「次」のオブジェクトを返しますが、
next と異なり列挙状態を変更しません。
列挙が既に最後へ到達している場合は、StopIteration 例外を発生します。
//emlist[例][ruby]{
a = [1,......2,3]
e = a.to_enum
p e.next #=> 1
p e.peek #=> 2
p e.peek #=> 2
p e.peek #=> 2
p e.next #=> 2
p e.next #=> 3
p e.next #raises StopIteration
//}
@raise StopIteration 列挙状態が既に最後へ到達しているとき
@see Enumerator#next, Enumerator#next_values, Enumerator#peek_val... -
Numeric (54.0)
-
数値を表す抽象クラスです。Integer や Float などの数値クラス は Numeric のサブクラスとして実装されています。
...覧です。実際にどのメソッドがどのクラスに定義されているかはそれぞ
れのクラスを参照してください。
=> ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin15]
Numeric Integer Float Rational Complex
-------......o - -
negative? | o - o o -
next | - o - - -
next_float | - - o - -
nonzero? | o......下のように定義できます。
//emlist[例][ruby]{
if n > 0 then
n.ceil
else
n.floor
end
//}
また、任意桁の切上げ、切捨て、四捨五入を行うメソッドは以下のように
定義できます。
//emlist[][ruby]{
class Numeric
def roundup(d=0)
x = 10**d
if... -
Enumerator
# rewind -> self (36.0) -
列挙状態を巻き戻します。
...列挙状態を巻き戻します。
next メソッドによる外部列挙の状態を最初まで巻き戻します。 self を返します。
内包するオブジェクトが rewind メソッドを持つとき(respond_to?(:rewind) に
真を返すとき) は、その rewind メソッドを呼......び出します。
@see Enumerator#next
//emlist[例][ruby]{
str = "xyz"
enum = str.each_byte
p enum.next # => 120
p enum.next # => 121
enum.rewind
p enum.next # => 120
//}... -
Numeric (36.0)
-
数値を表す抽象クラスです。Integer や Float などの数値クラス は Numeric のサブクラスとして実装されています。
...覧です。実際にどのメソッドがどのクラスに定義されているかはそれぞ
れのクラスを参照してください。
=> ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
Numeric Integer Fixnum Bignum Float Rational C......o o - -
nan? | - - - - o - -
next | - o - - - - -
nonzero? | o - -......下のように定義できます。
//emlist[例][ruby]{
if n > 0 then
n.ceil
else
n.floor
end
//}
また、任意桁の切上げ、切捨て、四捨五入を行うメソッドは以下のように
定義できます。
//emlist[][ruby]{
class Numeric
def roundup(d=0)
x = 10**d
if... -
字句構造 (36.0)
-
字句構造 * identifier * comment * embed * reserved
...字句構造
* identifier
* comment
* embed
* reserved
Rubyの現在の実装はASCIIキャラクタセットを用いています。アル
ファベットの大文字と小文字は区別されます。識別子と一部のリテ
ラルの途中を除いては任意の場所に空白文......キャリッジリターン+ラインフィードかラインフィードです。
===[a:identifier] 識別子
例:
foobar
ruby_is_simple
Rubyの識別子は英文字またはアンダースコア('_')か
ら始まり、英文字、アンダースコア('_')または数字......begin else in rescue undef __FILE__
break elsif module retry unless __ENCODING__
case end next return until
予約語はクラス名、変数名などに用いることはできません。ただし
接頭辞$, @、@@が先頭につ... -
Psych
. load(yaml , filename = nil , fallback: false , symbolize _ names: false) -> object (34.0) -
YAML ドキュメントを Ruby のデータ構造(オブジェクト)に変換します。
...YAML ドキュメントを Ruby のデータ構造(オブジェクト)に変換します。
入力に複数のドキュメントが含まれている場合は、先頭のものを変換して
返します。
filename はパース中に発生した例外のメッセージに用います。
@para......ruby]{
Psych.load("--- a") # => 'a'
Psych.load("---\n - a\n - b") # => ['a', 'b']
begin
Psych.load("--- `", "file.txt")
rescue Psych::SyntaxError => ex
p ex.file # => 'file.txt'
p ex.message # => "(file.txt): found character that cannot start any token while scanning for the next......ーワード引数 symbolize_names に true を指定した場合はハッシュのキー
を Symbol に変換して返します。
//emlist[例][ruby]{
Psych.load("---\n foo: bar") # => {"foo"=>"bar"}
Psych.load("---\n foo: bar", symbolize_names: true) # => {:foo=>"bar"}
/......す。
@raise Psych::SyntaxError YAMLドキュメントに文法エラーが発見されたときに発生します
@see Psych.parse
//emlist[例][ruby]{
Psych.load("--- a") # => 'a'
Psych.load("---\n - a\n - b") # => ['a', 'b']
begin
Psych.load("--- `", filename: "file.txt")
rescue Ps......er that cannot start any token while scanning for the next token at line 1 column 5"
end
//}
キーワード引数 symbolize_names に true を指定した場合はハッシュのキー
を Symbol に変換して返します。
//emlist[例][ruby]{
Psych.load("---\n foo: bar")... -
Psych
. load(yaml , filename: nil , fallback: false , symbolize _ names: false) -> object (34.0) -
YAML ドキュメントを Ruby のデータ構造(オブジェクト)に変換します。
...YAML ドキュメントを Ruby のデータ構造(オブジェクト)に変換します。
入力に複数のドキュメントが含まれている場合は、先頭のものを変換して
返します。
filename はパース中に発生した例外のメッセージに用います。
@para......す。
@raise Psych::SyntaxError YAMLドキュメントに文法エラーが発見されたときに発生します
@see Psych.parse
//emlist[例][ruby]{
Psych.load("--- a") # => 'a'
Psych.load("---\n - a\n - b") # => ['a', 'b']
begin
Psych.load("--- `", filename: "file.txt")
rescue Ps......er that cannot start any token while scanning for the next token at line 1 column 5"
end
//}
キーワード引数 symbolize_names に true を指定した場合はハッシュのキー
を Symbol に変換して返します。
//emlist[例][ruby]{
Psych.load("---\n foo: bar")... -
CSV
. filter(input , options = Hash . new) {|row| . . . } (30.0) -
このメソッドは CSV データに対して Unix のツール群のようなフィルタを構築 するのに便利です。
...nput, output は初期値][ruby]{
# $ echo "header1,header2\nrow1_1,row1_2" > in.csv; ruby test.rb in.csv
require "csv"
options = { headers: true, return_headers: true, write_headers: true }
CSV.filter(options) do |row|
if row.header_row?
row << "header3"
next
end
row << "row1_3"
en......d
# => header1,header2,header3
# row1_1,row1_2,row1_3
//}
//emlist[例: input, output を指定する][ruby]{
require "csv"
content = <<EOS
id,first name,last name,age
1,taro,tanaka,20
2,jiro,suzuki,18
3,ami,sato,19
4,yumi,adachi,21
EOS
File.write('test.csv',content)
options = { headers: true, re......write_headers: true }
CSV.filter(File.open("test.csv"), File.open("out.csv", "w"), options) do |row|
if row.header_row?
row << "full name"
next
end
row << row["first name"] + " " + row["last name"]
end
# out.csv の内容
# => id,first name,last name,age,full name
# 1,taro,tanaka... -
CSV
. filter(input , output , options = Hash . new) {|row| . . . } (30.0) -
このメソッドは CSV データに対して Unix のツール群のようなフィルタを構築 するのに便利です。
...nput, output は初期値][ruby]{
# $ echo "header1,header2\nrow1_1,row1_2" > in.csv; ruby test.rb in.csv
require "csv"
options = { headers: true, return_headers: true, write_headers: true }
CSV.filter(options) do |row|
if row.header_row?
row << "header3"
next
end
row << "row1_3"
en......d
# => header1,header2,header3
# row1_1,row1_2,row1_3
//}
//emlist[例: input, output を指定する][ruby]{
require "csv"
content = <<EOS
id,first name,last name,age
1,taro,tanaka,20
2,jiro,suzuki,18
3,ami,sato,19
4,yumi,adachi,21
EOS
File.write('test.csv',content)
options = { headers: true, re......write_headers: true }
CSV.filter(File.open("test.csv"), File.open("out.csv", "w"), options) do |row|
if row.header_row?
row << "full name"
next
end
row << row["first name"] + " " + row["last name"]
end
# out.csv の内容
# => id,first name,last name,age,full name
# 1,taro,tanaka... -
CSV
. filter(options = Hash . new) {|row| . . . } (30.0) -
このメソッドは CSV データに対して Unix のツール群のようなフィルタを構築 するのに便利です。
...nput, output は初期値][ruby]{
# $ echo "header1,header2\nrow1_1,row1_2" > in.csv; ruby test.rb in.csv
require "csv"
options = { headers: true, return_headers: true, write_headers: true }
CSV.filter(options) do |row|
if row.header_row?
row << "header3"
next
end
row << "row1_3"
en......d
# => header1,header2,header3
# row1_1,row1_2,row1_3
//}
//emlist[例: input, output を指定する][ruby]{
require "csv"
content = <<EOS
id,first name,last name,age
1,taro,tanaka,20
2,jiro,suzuki,18
3,ami,sato,19
4,yumi,adachi,21
EOS
File.write('test.csv',content)
options = { headers: true, re......write_headers: true }
CSV.filter(File.open("test.csv"), File.open("out.csv", "w"), options) do |row|
if row.header_row?
row << "full name"
next
end
row << row["first name"] + " " + row["last name"]
end
# out.csv の内容
# => id,first name,last name,age,full name
# 1,taro,tanaka... -
Enumerator
# feed(obj) -> nil (30.0) -
Enumerator 内部の yield が返す値を設定します。
...[ruby]{
# (1), (2), ... (10) の順に実行される
o = Object.new
def o.each
x = yield # (2) blocks
p x # (5) => "foo"
x = yield # (6) blocks
p x # (8) => nil
x = yield # (9) blocks
p x # not reached w/o another e.next......end
e = o.to_enum
e.next # (1)
e.feed "foo" # (3)
e.next # (4)
e.next # (7)
# (10)
//}
@param obj Enumerator 内部の yield が返す値
@raise TypeError すでに値をこのメソッドでセットしている場合に発生し...
