個人的リマインド用
初歩
irb → 簡易的にRubyを実行できる
ri → ドキュメントを見ることができる
コメントと出力
=begin
~この中をコメントに~
=end
print ~ (オブジェクトをstringに)
puts ~ (改行がつく)
p ~ (デバッグ用)
変数と定数
変数は英小文字か_で始めなければならない
例: msg = "こんにちは"
定数は全部大文字
例: VERSION = 1.1
※Rubyは定数を書き換える際、警告は出すがそのまま実行されるので注意
オブジェクト
Rubyは全部object
例: string(stringクラス), floot(flootクラス)
(インスタンス→)"Hello world".length(←メソッド)
method
様々なメソッド
54.8.class(所属しているクラスが見れる)
54.8.methods(使えるメソッドが見れる)
四則演算 + - * / % ** などなど
分数の計算→ Rational(2, 5) == 5分の2
※ちなみに2/5rてな感じに短くかける
""と''
””と’’の違い
""は特殊文字と式展開ができる
特殊文字→文字列途中に\nで改行、\tでタブなどなど
※\はoption + ¥キー
式展開→"#{300 * 300}だったり#{変数名}"文字列の中で式を展開したり変数を表示できる
"hello" + "world" → "helloworld"
"hello" * 10 → "Hello"を10回表示
!と?
!や?がついたmethod
!がついたmethodは破壊的なメソッド
例: .upcase(大文字にするメソッド)の場合
.upcase!(大文字を返した上で書き換える)→これを破壊的なメソッドという
他にも.downcase(全小文字)や.reverse(文字を逆に)などがある
?がついたmethodは真偽値を返す
例: .empty(空)や.include(含む)
name.empty?(空ですか?), name.include?("g")(gを含んでいますか?)
配列
colors = ["red", "blue", "yellow"]
アクセス
colors[0(添字)] → "red"
colors[-1] → "yellow"
colors[0 .. 2] → 全部
colors[0 ... 2] → "red", "blue"(2の直前まで)
colors[5] → nil(何もないと言うオブジェクト)
書き換え
colors[0] = "pink"
colors[1 .. 2] = ["green", "black"]
*後ろに追加* colors.push("gold") == colors << "silver"
※他にも.size(配列の数)や.sort(並び替え)などのmethodもあるよ
ハッシュ
ハッシュ(jsでいうobject)
scores = {tanaka: 200, sato: 100}
アクセス方法
scores[:tanaka]
書き換え方法
scores[:sato] = 600
様々なmethod
.size(ハッシュ内の数) .keys(キーだけ取る) .values(バリューだけ取る)
.has_key?(:tanaka)(このキーありますか?)
変換
変換
.to_s(文字列)
.to_i(整数)
.to_f(浮動小数点)
.to_a(配列)
.to_h(ハッシュ)
""と''の書き換え
""から%()に,''から%q()に
"Hello" == %(Hello)
'Hello' == %q(Hello)
メリットは\nとかを使う時に分かりやすい
他にも
["red", "blue"] == %W(red, blue)
['red', 'blue'] == %w(red, blue)
埋込
埋込 "文字列" % 値
"name: %s" % "tanaka" → "name: taguchi"
"name: %10s" % "tanaka" → "name: (10桁空) tanaka"
"name: %-10s" → "name: tanaka (10桁空)"
%d(整数) %f(浮動小数点)
"id: %05d(5桁にして0で埋める), rate: %10.2f(左に10桁空きで小数点以下2桁) % [355, 3.284]
→"id: 00355, rate: (10桁空き) 3.28"