リファレンス/Ruby/基礎
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* Rubyの基礎 [#hb7111cf]
#contents
** 予備知識 [#a6a9afed]
** Rubyにおけるコメント [#g15e82c6]
Rubyでは、シェルスクリプトなどと同じく、#から改行までがコ...
また、=beginと=endにはさまれた行は、コメント(正確にはド...
[処理]
=begin
何か適当にドキュメントを書く
=end
[処理]
といったことができる。
** 定数 [#r71962d2]
Rubyで利用できる定数は次のようなものがある。
|定数の種類|例|解説|
|十進数値|100|十進の数値。|
|十六進数値|0x100|十六進の数値。|
|八進数値|0o100|八進の数値。|
|小数値|0.1|十進の小数数値。|
|エスケープ可能リテラル文字列|"current time is #{time}.\n...
|エスケープ不能リテラル文字列|'this is a pen.'|エスケープ...
|パイプキャプチャ|`ls -la`|記述された文字列をコマンドとし...
|ヒアドキュメント|'''後述する'''|ヒアドキュメント。|
|正規表現|/.../|正規表現を返す。|
|配列|[...]|指定された中身を持つ配列を返す。中身となる要...
|連想配列|{...}|指定された中身を持つ連想配列を返す。中身...
|シンボル|:[シンボル名]|Symbolクラスのインスタンスを返す。|
*** リテラル文字列における、エスケープ文字と式の埋め込み ...
エスケープ可能なリテラル文字列には、\nや\tや\x41など、\記...
リテラル文字に変数を含めるには、#{ ... }を使う。これは、...
literal_string = "variable x equals #{ $x = "alphabet" }"
このとき、式にコメントを含めることができる。Ruby ver 1.7...
commented_equation = "variable x equals #{ $x = "alphabe...
という感じで、コメントを入れることができる。Ruby ver 1.7...
*** ヒアドキュメント [#m36fc7f4]
ヒアドキュメントは、長いテキストを一括して記述する方法で...
<<[マーク]
ここに、何行でも好きなこと([マーク]だけの行は書けない)...
[マーク]
[マーク]は、識別子のルールに則って決めると良い。
もし、最後の[マーク]をインデントしたければ、最初の<<と[マ...
2.times {
<<-[マーク]
なんかいろいろ書く。
[マーク]
最初の例だと、終わりを示す[マーク]だけの行は、インデント...
なお、[マーク]を記号で囲むことで、エスケープ文字や式展開...
evaluated = <<"__TEXT__"
#{ $x = "alphabet" }
__TEXT__
not_evaluated = <<'__TEXT__'
#{ $x = "alphabet" }
__TEXT__
directory_listing = <<`__TEXT__`
ls -la ./
ls -la res/
__TEXT__
*** パイプキャプチャによるコマンドの実行 [#hca21786]
パイプキャプチャは、コマンドの実行結果を受け取りたいとき...
directory_listing = `ls -la`
これは、Unix/Linuxでおなじみの、ディレクトリリストを文字...
** Rubyの識別子規則 [#x764481c]
Rubyの識別子は、英数字と_から成る。ただし、数字から始まっ...
また、記号で始まらない識別子のうち、予約語と同じ綴りにな...
*** %記法によるデリミタの変更 [#wc62c9db]
%記法を利用することで、デリミタを標準のものから変更するこ...
|%記法|意味|等価式|
|%Q?...?|エスケープ可能リテラル文字列。|"..."|
|%q?...?|エスケープ不能リテラル文字列。|'...'|
|%x?...?|パイプキャプチャ。|`...`|
|%r?...?|正規表現。|/.../|
たとえば、次のように使える。%記法を使わない場合にどうなる...
%r#http://www.hogehoge.com/#
** 変数 [#h487f390]
*** 変数の種類 [#vb0fe97b]
Rubyの変数にはいくつか種類がある。
|変数の種類|特徴|解説|
|ローカル変数|英小文字から始まる|属するスコープの外からは...
|グローバル変数|先頭に$が1つだけ付く|どのスコープからでも...
|インスタンス変数|先頭に@が1つだけ付く||
|クラス変数|先頭に@が2つだけ付く||
|クラス定数|英大文字から始まる||
vという名前のローカル変数のスコープを確認するには、次の2...
2.times {
p defined?(v) # vが定義(宣言)されているか表示。未定...
v = 1 # vを定義(宣言)する。
p v # vの内容を表示する。1が表示される。
}
つまり、ローカル変数vは、そのスコープとなるブロックを抜け...
*** 定義済みの定数変数 [#c110c576]
Rubyでは、次のような定義済み定数変数がある。プログラマが...
|定数変数|内容|
|nil|無効な値などを表す。falseと同じ意味にとられる場面が...
|true|真値を表す。|
|false|偽値を表す。|
|self|クラスインスタンス自信を表す。|
** 文法 [#gbabb3cb]
*** 基本事項 [#sbae6ca3]
Rubyでは、多くのことは式で記述する。つまり、多くのことは...
Rubyでは、1行に複数のことを記述できない。改行によって区別...
*** 代入 [#j01756b7]
代入は、=によって行う。
alpha = beta
gamma = omega
*** 条件分岐 [#j03ae9ce]
条件分岐は、次のように行う。
if [式] then
[処理]
elsif [式] then
[処理]
else [式] then
[処理]
end
elsifやelseは、必要なければなくてもかまわない。これは、他...
また、ifの否定形として、unlessを使うことができる。書き方...
条件分岐を省略して記述する方式として、Perlのような書き方...
[式1] if [式2]
[式1] unless [式2]
thenやelseやendは必要ないし使えない。全体が式とみなされる...
更に、多くの条件を書く方式として、case-when方式がある。
case [式]
when [式1]
[処理]
when [式2]
[処理]
else
[処理]
end
なお、この方式での比較は、===演算子で行われることに注意す...
[式1]や[式2]は拡張型があり、カンマで区切って複数の値を記...
ary = [1, 2, 3]
case x
when *ary
[処理]
end
は、
case x
when 1, 2, 3
[処理]
end
と等価である。
case-when自体も式なので、成立した処理が返す値を式の値とし...
*** 繰り返し [#z614fbba]
一定回数繰り返すには、次のようにすれば良い。
10.times {
p "loop"
}
これで、10回繰り返す。
より複雑な条件での繰り返しは、whileやuntilを用いて記述で...
while [式]
[処理]
end
until [式]
[処理]
end
[式]が真である間、[処理]を繰り返す。untilは、[式]が偽であ...
ifと同様に、whileやuntilも後置することで省略形にできる。
whileやuntilは、後述する引数付きのbreakで抜けない限り、式...
列挙による繰り返しは、forによって行える。
for [変数] in [式]
[処理]
end
[式]の値のeachメソッドが返すものを、一つずつ[変数]に代入...
これは、変数のスコープを除いて(forは、ローカル変数用のス...
[式].each {|変数| [処理]}
ループの制御は、break、next、redo、retry、で行う。
breakは、ループや列挙を抜ける(強制的にループを終了させる...
nextは、ループや列挙を次のものに飛ばす際に使用する。
redoは、条件として指定した式の評価などを行わずに、ループ...
** 他言語との比較 [#v72cae13]
*** C/C++との比較 [#q90d7c65]
Rubyでは、1行に1つのことを書く。セミコロンは必要ない。
変数は、大文字小文字で役割そのものが変わることがある。ま...
多くの処理は式である。if文の結果が存在し、それを変数に代...
forは、役割が違う。C/C++風の使い方はできない。
** 参考リンク [#b87a1c75]
- [[公式チュートリアル>http://www.ruby-lang.org/ja/200203...
- [[公式リファレンス>http://www.ruby-lang.org/ja/man/]]
終了行:
* Rubyの基礎 [#hb7111cf]
#contents
** 予備知識 [#a6a9afed]
** Rubyにおけるコメント [#g15e82c6]
Rubyでは、シェルスクリプトなどと同じく、#から改行までがコ...
また、=beginと=endにはさまれた行は、コメント(正確にはド...
[処理]
=begin
何か適当にドキュメントを書く
=end
[処理]
といったことができる。
** 定数 [#r71962d2]
Rubyで利用できる定数は次のようなものがある。
|定数の種類|例|解説|
|十進数値|100|十進の数値。|
|十六進数値|0x100|十六進の数値。|
|八進数値|0o100|八進の数値。|
|小数値|0.1|十進の小数数値。|
|エスケープ可能リテラル文字列|"current time is #{time}.\n...
|エスケープ不能リテラル文字列|'this is a pen.'|エスケープ...
|パイプキャプチャ|`ls -la`|記述された文字列をコマンドとし...
|ヒアドキュメント|'''後述する'''|ヒアドキュメント。|
|正規表現|/.../|正規表現を返す。|
|配列|[...]|指定された中身を持つ配列を返す。中身となる要...
|連想配列|{...}|指定された中身を持つ連想配列を返す。中身...
|シンボル|:[シンボル名]|Symbolクラスのインスタンスを返す。|
*** リテラル文字列における、エスケープ文字と式の埋め込み ...
エスケープ可能なリテラル文字列には、\nや\tや\x41など、\記...
リテラル文字に変数を含めるには、#{ ... }を使う。これは、...
literal_string = "variable x equals #{ $x = "alphabet" }"
このとき、式にコメントを含めることができる。Ruby ver 1.7...
commented_equation = "variable x equals #{ $x = "alphabe...
という感じで、コメントを入れることができる。Ruby ver 1.7...
*** ヒアドキュメント [#m36fc7f4]
ヒアドキュメントは、長いテキストを一括して記述する方法で...
<<[マーク]
ここに、何行でも好きなこと([マーク]だけの行は書けない)...
[マーク]
[マーク]は、識別子のルールに則って決めると良い。
もし、最後の[マーク]をインデントしたければ、最初の<<と[マ...
2.times {
<<-[マーク]
なんかいろいろ書く。
[マーク]
最初の例だと、終わりを示す[マーク]だけの行は、インデント...
なお、[マーク]を記号で囲むことで、エスケープ文字や式展開...
evaluated = <<"__TEXT__"
#{ $x = "alphabet" }
__TEXT__
not_evaluated = <<'__TEXT__'
#{ $x = "alphabet" }
__TEXT__
directory_listing = <<`__TEXT__`
ls -la ./
ls -la res/
__TEXT__
*** パイプキャプチャによるコマンドの実行 [#hca21786]
パイプキャプチャは、コマンドの実行結果を受け取りたいとき...
directory_listing = `ls -la`
これは、Unix/Linuxでおなじみの、ディレクトリリストを文字...
** Rubyの識別子規則 [#x764481c]
Rubyの識別子は、英数字と_から成る。ただし、数字から始まっ...
また、記号で始まらない識別子のうち、予約語と同じ綴りにな...
*** %記法によるデリミタの変更 [#wc62c9db]
%記法を利用することで、デリミタを標準のものから変更するこ...
|%記法|意味|等価式|
|%Q?...?|エスケープ可能リテラル文字列。|"..."|
|%q?...?|エスケープ不能リテラル文字列。|'...'|
|%x?...?|パイプキャプチャ。|`...`|
|%r?...?|正規表現。|/.../|
たとえば、次のように使える。%記法を使わない場合にどうなる...
%r#http://www.hogehoge.com/#
** 変数 [#h487f390]
*** 変数の種類 [#vb0fe97b]
Rubyの変数にはいくつか種類がある。
|変数の種類|特徴|解説|
|ローカル変数|英小文字から始まる|属するスコープの外からは...
|グローバル変数|先頭に$が1つだけ付く|どのスコープからでも...
|インスタンス変数|先頭に@が1つだけ付く||
|クラス変数|先頭に@が2つだけ付く||
|クラス定数|英大文字から始まる||
vという名前のローカル変数のスコープを確認するには、次の2...
2.times {
p defined?(v) # vが定義(宣言)されているか表示。未定...
v = 1 # vを定義(宣言)する。
p v # vの内容を表示する。1が表示される。
}
つまり、ローカル変数vは、そのスコープとなるブロックを抜け...
*** 定義済みの定数変数 [#c110c576]
Rubyでは、次のような定義済み定数変数がある。プログラマが...
|定数変数|内容|
|nil|無効な値などを表す。falseと同じ意味にとられる場面が...
|true|真値を表す。|
|false|偽値を表す。|
|self|クラスインスタンス自信を表す。|
** 文法 [#gbabb3cb]
*** 基本事項 [#sbae6ca3]
Rubyでは、多くのことは式で記述する。つまり、多くのことは...
Rubyでは、1行に複数のことを記述できない。改行によって区別...
*** 代入 [#j01756b7]
代入は、=によって行う。
alpha = beta
gamma = omega
*** 条件分岐 [#j03ae9ce]
条件分岐は、次のように行う。
if [式] then
[処理]
elsif [式] then
[処理]
else [式] then
[処理]
end
elsifやelseは、必要なければなくてもかまわない。これは、他...
また、ifの否定形として、unlessを使うことができる。書き方...
条件分岐を省略して記述する方式として、Perlのような書き方...
[式1] if [式2]
[式1] unless [式2]
thenやelseやendは必要ないし使えない。全体が式とみなされる...
更に、多くの条件を書く方式として、case-when方式がある。
case [式]
when [式1]
[処理]
when [式2]
[処理]
else
[処理]
end
なお、この方式での比較は、===演算子で行われることに注意す...
[式1]や[式2]は拡張型があり、カンマで区切って複数の値を記...
ary = [1, 2, 3]
case x
when *ary
[処理]
end
は、
case x
when 1, 2, 3
[処理]
end
と等価である。
case-when自体も式なので、成立した処理が返す値を式の値とし...
*** 繰り返し [#z614fbba]
一定回数繰り返すには、次のようにすれば良い。
10.times {
p "loop"
}
これで、10回繰り返す。
より複雑な条件での繰り返しは、whileやuntilを用いて記述で...
while [式]
[処理]
end
until [式]
[処理]
end
[式]が真である間、[処理]を繰り返す。untilは、[式]が偽であ...
ifと同様に、whileやuntilも後置することで省略形にできる。
whileやuntilは、後述する引数付きのbreakで抜けない限り、式...
列挙による繰り返しは、forによって行える。
for [変数] in [式]
[処理]
end
[式]の値のeachメソッドが返すものを、一つずつ[変数]に代入...
これは、変数のスコープを除いて(forは、ローカル変数用のス...
[式].each {|変数| [処理]}
ループの制御は、break、next、redo、retry、で行う。
breakは、ループや列挙を抜ける(強制的にループを終了させる...
nextは、ループや列挙を次のものに飛ばす際に使用する。
redoは、条件として指定した式の評価などを行わずに、ループ...
** 他言語との比較 [#v72cae13]
*** C/C++との比較 [#q90d7c65]
Rubyでは、1行に1つのことを書く。セミコロンは必要ない。
変数は、大文字小文字で役割そのものが変わることがある。ま...
多くの処理は式である。if文の結果が存在し、それを変数に代...
forは、役割が違う。C/C++風の使い方はできない。
** 参考リンク [#b87a1c75]
- [[公式チュートリアル>http://www.ruby-lang.org/ja/200203...
- [[公式リファレンス>http://www.ruby-lang.org/ja/man/]]
ページ名: