別のキーワード
ライブラリ
- ビルトイン (922)
- csv (342)
- date (4)
- forwardable (24)
- psych (8)
-
rexml
/ document (216) -
rubygems
/ commands / which _ command (12) - thread (2)
クラス
- Array (84)
- CSV (312)
-
CSV
:: FieldInfo (24) -
CSV
:: Row (6) - Date (2)
- DateTime (2)
- Enumerator (6)
-
Enumerator
:: Lazy (102) -
File
:: Stat (12) - IO (12)
- Object (48)
-
REXML
:: Attributes (144) -
REXML
:: Element (36) -
REXML
:: XPath (12) - Range (130)
-
RubyVM
:: AbstractSyntaxTree :: Node (14) -
RubyVM
:: InstructionSequence (24) - String (216)
-
Thread
:: Backtrace :: Location (36) - Time (2)
モジュール
- Enumerable (156)
- Forwardable (24)
- Kernel (36)
- Psych (8)
-
RubyVM
:: AbstractSyntaxTree (10)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) - << (12)
- <=> (12)
- Default (12)
- Lazy (12)
-
NEWS for Ruby 2
. 0 . 0 (12) -
NEWS for Ruby 2
. 2 . 0 (11) -
NEWS for Ruby 3
. 0 . 0 (5) - Queue (12)
- Range (12)
- Ruby用語集 (12)
- Transitive (12)
- WhichCommand (12)
- [] (84)
- []= (48)
-
add
_ row (12) - attribute (12)
- begin (12)
- binwrite (12)
- caller (36)
-
cgi
/ session (12) -
chunk
_ while (12) -
col
_ sep (12) - convert (36)
- deconstruct (3)
-
deconstruct
_ keys (9) - delegate (12)
- delete (12)
-
delete
_ all (12) - each (24)
-
each
_ attribute (12) - eager (6)
- end (12)
-
enum
_ for (48) -
fiddle
/ import (12) - filter (36)
-
first
_ column (7) -
first
_ lineno (19) - generate (12)
-
get
_ attribute (12) -
get
_ attribute _ ns (12) - header (12)
-
header
_ convert (36) - index (12)
- inject (36)
- instance (24)
-
instance
_ delegate (12) - label (12)
- last (48)
- lazy (12)
- length (12)
- lineno (12)
- min (46)
- namespaces (12)
- new (36)
- of (10)
- open (48)
- parse (24)
- path (12)
- pp (12)
- prefixes (12)
- produce (6)
- puts (12)
- rdoc (12)
- read (12)
- readlines (12)
- reduce (36)
- root (12)
-
root
_ node (12) - rss (12)
-
ruby 1
. 6 feature (12) -
ruby 1
. 8 . 2 feature (12) -
ruby 1
. 9 feature (12) -
safe
_ load (8) - size (12)
- slice (72)
- slice! (72)
-
slice
_ before (24) -
slice
_ when (12) - take (12)
-
take
_ while (24) -
to
_ a (12) -
to
_ enum (48) - tsort (12)
-
yaml
/ store (12) - パターンマッチ (12)
- リテラル (12)
- 演算子式 (12)
検索結果
-
RubyVM
:: InstructionSequence # to _ a -> Array (3018.0) -
self の情報を 14 要素の配列にして返します。
...いた場合は "<compiled>"。
: #absolute_path
命令シーケンスの絶対パス。文字列から作成していた場合は nil。
: #first_lineno
命令シーケンスの 1 行目の行番号。
: type
命令シーケンスの種別。
:top、:method、:block、:class、:rescue......命令シーケンスを構成する命令とオペランドの配列の配列。
//emlist[例][ruby]{
require 'pp'
iseq = RubyVM::InstructionSequence.compile('num = 1 + 2')
pp iseq.to_a
# ※ Ruby 2.5.0 での実行結果
# => ["YARVInstructionSequence/SimpleDataFormat",
# 2,
# 0,
# 1,
# {:arg_... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (1416.0) -
1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))
...動作はなくなりました)
$defout や $deferr に代入を行うと警告がでます。
(注:1.6 に $deferr はありません)
((<ruby-dev:20961>))
$stdin にオブジェクトを代入すると標準入力からの入力メソッド(gets 等)
はそのオブジェクトにメ......オプションは $VERBOSE = nil の指定(-W0)を可能にします。
: ruby interpreter [ruby] [change]
クラスの特異クラスの特異クラスは特異クラス自身であると定義されました
((<ruby-bugs-ja:313>))。なんだかよくわかりません(^^;
class <......".." は、付加
されないようになりました。((<ruby-dev:16522>))
: ((<組み込み関数/abort>)) [compat]
終了メッセージを指定できるようになりました。
=== Array
: ((<Array#first|Array/first>)) [compat]
: ((<Array#last|Array/last>)) [compat]
省略可... -
リテラル (252.0)
-
リテラル * num * string * backslash * exp * char * command * here * regexp * array * hash * range * symbol * percent
...* exp
* char
* command
* here
* regexp
* array
* hash
* range
* symbol
* percent
数字の1や文字列"hello world"のようにRubyのプログラムの中に直接
記述できる値の事をリテラルといいます。
===[a:num] 数値リテラル
: 123
: 0d123
整数......: 42i
: 3.14i
複素数
: 42ri
: 3.14ri
虚数部が有理数の複素数
数値リテラルには、`_' を含めることができます。
ruby インタプリタは `_' を単に無視し、特別な解釈は何もしません。
これは、大きな数値の桁数がひと目でわか......一行に複数のヒアドキュメントを書くこともできます。
//emlist[][ruby]{
print <<FIRST, <<SECOND
これは一つめのヒアドキュメントです。
まだ一つめです。
FIRST
この行からは二つめのヒアドキュメントです。
この行で終わ... -
パターンマッチ (240.0)
-
パターンマッチ * patterns * variable_binding * variable_pinning * matching_non_primitive_objects * guard_clauses * current_feature_status * pattern_syntax * some_undefined_behavior_examples
...験的な機能です。(『束縛』は、パターンマッチの輸入元である関数型言語の用語で、Ruby では代入と読み替えても問題ありません)
Rubyでのパターンマッチは in 演算子を用いて実装されており、単体の式や
<expression> in <patt......PatternError が発生します。
そのため、条件付きのマッチや展開に case 式が使われることがあります。
//emlist[][ruby]{
config = {db: {user: 'admin', password: 'abc123'}}
case config
in db: {user:} # ネストしてハッシュにマッチして、その値を変......mlist[][ruby]{
case {name: 'John', friends: [{name: 'Jane'}, {name: 'Rajesh'}]}
in name:, friends: [{name: first_friend}, *]
"matched: #{first_friend}"
else
"not matched"
end
#=> "matched: Jane"
//}
パターンの残りの部分も同様に変数に束縛できます。
//emlist[][ruby]{
case......にする機能です。(『束縛』は、パターンマッチの輸入元である関数型言語の用語で、Ruby では代入と読み替えても問題ありません)
Rubyでのパターンマッチは case/in 式を用いて実装されています。
case <expression>
in <pattern1>... -
演算子式 (174.0)
-
演算子式 * assign * selfassign * multiassign * range * range_cond * and * or * not * cond
...gn
* range
* range_cond
* and
* or
* not
* cond
//emlist[例][ruby]{
1+2*3/4
//}
プログラミングの利便のために一部のメソッド呼び出しと制御構造は演算子形
式をとります。Rubyには以下にあげる演算子があります。
高い ::......算子の優先順位です。
例えば「&&」は「||」より優先順位が高いので、以下のように
解釈されます。
//emlist[][ruby]{
a && b || c #=> (a && b) || c
a || b && c #=> a || (b && c)
//}
ほとんどの演算子は特別な形式のメソッド呼び出しです......重代入とほぼ同じルールが適用されます)
//emlist[例][ruby]{
def foo(*)
end
foo(1,2,3)
//}
多重代入の値は配列に変換された右辺です。
===[a:range] 範囲式
//emlist[例][ruby]{
1 .. 20
/first/ ... /second/
//}
文法:
式1 `..' 式2
式1......重代入とほぼ同じルールが適用されます)
//emlist[例][ruby]{
def foo(*)
end
foo(1,2,3)
//}
多重代入の値は配列に変換された右辺です。
===[a:range] 範囲式
//emlist[例][ruby]{
1 .. 20
/first/ ... /second/
(1..)
//}
文法:
式1 `..' 式2... -
Range
. new(first , last , exclude _ end = false) -> Range (153.0) -
first から last までの範囲オブジェクトを生成して返しま す。
...
first から last までの範囲オブジェクトを生成して返しま
す。
exclude_end が真ならば終端を含まない範囲オブジェクトを生
成します。exclude_end 省略時には終端を含みます。
@param first 最初のオブジェクト
@param last 最後のオブ......ArgumentError first <=> last が nil の場合に発生します
//emlist[例: 整数の範囲オブジェクトの場合][ruby]{
Range.new(1, 10) # => 1..10
Range.new(1, 10, true) # => 1...10
//}
//emlist[例: 日付オブジェクトの範囲オブジェクトの場合][ruby]{
require 'da......レスの範囲オブジェクトの場合][ruby]{
require 'ipaddr'
Range.new(IPAddr.new("192.0.2.1"), IPAddr.new("192.0.2.3")).each {|ip| puts ip}
# => 192.0.2.1
# 192.0.2.2
# 192.0.2.3
//}
//emlist[例: 自作のオブジェクトの場合][ruby]{
MyInteger = Struct.new(:value) do
def suc... -
Enumerable
# inject(init = self . first) {|result , item| . . . } -> object (114.0) -
リストのたたみこみ演算を行います。
...ブジェクトを指定します。
実行結果に対して sym という名前のメソッドが呼ばれます。
//emlist[例][ruby]{
# 合計を計算する。
p [2, 3, 4, 5].inject {|result, item| result + item } #=> 14
# 自乗和を計算する。初期値をセット......nject(0) {|result, item| result + item**2 } #=> 54
//}
この式は以下のように書いても同じ結果が得られます。
//emlist[例][ruby]{
result = 0
[1, 2, 3, 4, 5].each {|v| result += v }
p result # => 15
p [1, 2, 3, 4, 5].inject(:+) #=> 15
p ["b", "c", "d"].i... -
Enumerable
# reduce(init = self . first) {|result , item| . . . } -> object (114.0) -
リストのたたみこみ演算を行います。
...ブジェクトを指定します。
実行結果に対して sym という名前のメソッドが呼ばれます。
//emlist[例][ruby]{
# 合計を計算する。
p [2, 3, 4, 5].inject {|result, item| result + item } #=> 14
# 自乗和を計算する。初期値をセット......nject(0) {|result, item| result + item**2 } #=> 54
//}
この式は以下のように書いても同じ結果が得られます。
//emlist[例][ruby]{
result = 0
[1, 2, 3, 4, 5].each {|v| result += v }
p result # => 15
p [1, 2, 3, 4, 5].inject(:+) #=> 15
p ["b", "c", "d"].i... -
String
# slice!(first . . . last) -> String (108.0) -
指定した範囲 (String#[] 参照) を 文字列から取り除いたうえで取り除いた部分文字列を返します。
...り除いたうえで取り除いた部分文字列を返します。
引数が範囲外を指す場合は nil を返します。
//emlist[例][ruby]{
string = "this is a string"
string.slice!(2) #=> "i"
string.slice!(3..6) #=> " is "
string.slice!(/s.*t/) #=> "sa st"
string.slice!("r...