LoginSignup
0
0

More than 1 year has passed since last update.

ドットインストール Ruby入門 メモ

Posted at

<1〜10>

Rubyでの便利なコマンド
irb #インタラクティブにRubyを操作できる。少し何かを試したいときに。exitで抜ける。
ri #知りたい命令やオブジェクトのドキュメントを見ることができる。たとえば「ri Array」としてあげると Array オブジェクトに関する情報が出てくる。qキーで抜ける。

複数行一気にコメントにしたい場合には、=begin と =end で囲う。
print #改行なし
puts #改行
p #デバッグ用 文字列だよということがわかりやすいように、ダブルクォーテーションで囲われて表示されたりする。複雑なデータだと構造が分かりやすいように表示してくれたりする。

定数は全大文字

「2/5r」 #5分の2を表す

四捨五入の場合は round、そして小数点以下切り捨ての場合は floor、小数点以下切り上げの場合は ceil という命令

upcase は文字列を大文字にしたものを返すだけ、upcase! は文字列を大文字にしたものを返しつつ、元の文字列も大文字に書き換えるという違いがあります。
!は大元のオブジェクトを書き換えてしまうという意味で「破壊的なメソッド」と呼んだりする。

?は真偽値を返すメソッド  include? empty?など

colors[0..2] #colors配列のインデックス0〜2を引っ張ってくる
colors[0...2] #これは 0〜2 の直前までになるので、これも覚えておきましょう。

colors.push("gold) は colors << "gold" と省略できる
.size は要素の数

#ハッシュ scores = {taguchi: 300, fkoji: 400}
キーの一覧を引っ張ってきたい場合は scores.keys、値の一覧だけ引っ張ってきたい場合は scores.values
そのキーがあるかどうかは scores.has_key? で調べることができる

整数にしたい場合は to integer という意味で「.to_i」
浮動小数点数にしたい場合は to float という意味で「.to_f」
文字列にしたいなら to string で「.to_s」
.to_a で to array (配列)
.to_h で to hash

<11〜20>

ダブルクォーテーション ""   # %Q で代用可   ""はQだけでも可
シングルクォーテーション ''   # %q で代用可

書式付きで文字列を埋め込む方法 % を使って「"文字列" % 値」のように表現できたりするので覚えておいてください。
文字列だったら %s、整数だったら %d、浮動小数点数だったら %f を使います。

例: "name: %s" % "taguchi" => "name: taguchi" と出力

10桁分使うなら %10s
10桁使って左詰めなら %-10s

printf は書式付きで文字列を表示するための命令
「"文字列" % 値」の % は , にすればいいので printf("name: %10s", "taguchi") としてあげましょう。

sprintf は表示するのではなくて文字列を返してくれる命令
文字列が返ってくるのでそれを p で表示したい場合は p sprintf(…) のようにしてあげれば OK

すごく単純な条件分岐の場合は if を後ろに書くこともできて、たとえば「puts "great!" if score > 80」といった書き方もできたりします。

case と when でsignalの条件分岐

gets は 1 行読み込むのですが、最後に改行コードがついているので chomp というメソッドでその最後の改行コードを取り除いてあげます

繰り返しは while や timesがある
配列やハッシュには for や each
times メソッドで見たように、繰り返す処理が 1 行ぐらいだったら do から end を { } で囲って 1 行で表現することもよくやる.

永遠に処理を繰り返す loop (Ctrl + C で止める)
ループを抜ける処理とよく使われ、具体的にはループを抜けるための break、そしてループを 1 回スキップするための next が使われる (next は一回だけスキップ)

値を設定するほうのメソッドを setter、そして値を取得するほうのメソッドを getter、2 つを合わせてアクセサと呼んだりする.

<21〜26>

メソッドのアクセス権はpublic private protectがある。(protectedは結構特殊)
new したときに呼ばれる initialize メソッドと、クラスの外に書いたメソッドは自動的に private になる。
private はレシーバーを指定できないメソッドになる(例えば User のインスタンスから呼び出すことはできないが、クラスの中からは呼び出せる)。

private ではレシーバーを指定できないので必ず self は省略

モジュールは module Movie end のように作る(モジュール名の1文字目は大文字)。
関連するメソッドや定数などをざっとまとめてグループ化したいだけのときに、モジュールは手軽に使えて便利。

例外が発生しそうな処理をまず begin と end で囲ってあげて、例外が発生した場合の処理を rescue の後に書いていってあげます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0