Rubyは「書きやすさ」をテーマとして創られた言語なだけあって理解しやすく、また書きやすい言語でした。
メソッドも数多く用意されており、ストレスをあまり感じずコーディングできました。
今後、仕事でもプライベートでもRubyを書く機会を増やしていければよいなと思います。
基本情報
手続き型↔オブジェクト指向
関数≒メソッド
———————————————————
コメントアウト
一行のみをコメントアウトする場合は「#」を使用する。
#コメント
複数行をコメントアウトしたい場合は「」から「」の間の全ての行がコメントになります。
=begin
コメント
コメント
=end
文字列連結
A + B
A . contact(B)
A << B
※下の2つは連結というよりは追加
———————————————————
データ型
int
float
str
Bool など
———————————————————
四則演算
加算 A + B
減算 A – B
乗算 A * B
べき乗 A ** B
除算 A / B
剰余 A % B
※計算の優先順位は 剰除 > 加減。( )をつければ優先度が上がる。
———————————————————
比較演算子
A == B AとBは等しい
A > B AはBより大きい
A >= B AはB以上
A != B 等しくない
———————————————————
変数
最初の1文字目は「大文字」「数字」以外
hensuu = ‘文字’
puts “#{hensuu}などを追加”
変数のスコープとは、変数の有効な範囲である。
出力の場合には、#{name}、#{@@name}と書く。
・ローカル変数
小文字もしくは_(アンダースコア)で始める。
変数のスコープはメソッド内のみである。
Ex)name
・グローバル変数
$から始まる変数名を用いる
プログラムのどこからでも参照可能。融通がきかないため一般的に好まれない。
Ex)$name
・インスタンス変数
@から始まる変数名を用いる。
同じインスタンス内であればメソッドの定義を超えて参照、変更できる。
Ex)@name
・クラス変数
@@から始まる変数名を用いる
そのクラスのすべてのインスタンスから参照、変更できる。
Ex)@@name
・疑似変数
self
true
false
nil
———————————————————
繰り返し( for )
for i in 0…10 do (※doは省略可能)
#実行文
end
a…b(bを含まない)
a..b(bを含む)
カウンタ変数( i )には in の後ろの数字が順順に代入される
繰り返し( while )
while 条件式
実行処理
end
※forとは違いカウンタ変数を自分で用意しなければならない
———————————————————
条件文(制御文)
a = ‘hoge’
if a == ‘hoge’ || a == ‘hogee’
# 実行文 1
elsif a == ‘moge’ && a == ‘mogee’
# 実行文 2
else
# 実行文 3
end
a = hoge
unless a == ‘hoge’
# 実行文
end
&& のことを論理積という
|| のことを論理和という
後置き条件
a = ‘hoge’
//実行文 if a == ‘hoge’
//実行文 unless a == ‘moge’
———————————————————
配列
arr = Array.new( int(要素の個数), 要素の中身 )
arr = [ ]
arr = [ ‘ hoge’ , ’ moge ’, 100 ]
puts arr[0] //キーが0のものを出力
a.eachwithindex do |value, index|
#実行文
end
arr.length 要素の数を取得
arr.delete( 要素を指定 ) 要素を削除
arr.delete_at( キーを指定 ) 要素を削除
arr.push ↔ array.pop 末尾に追加・削除
arr.unshift ↔ array.shift 先頭に追加・削除
for i in arr
puts i
end
※ iには配列の要素が順番に代入される
#ソート
あいうえお順、数字順 → .sort
あいうえお逆順 → .sort.reverse
※ 漢字やカタカナを含む場合には注意が必要
———————————————————
連想配列(ハッシュ)
・ハッシュの作り方
arr = {“math” => 71, “Japanese” => 66, …}
・ハッシュの追加方法(変更も)
arr [“Science”] = 100
・ハッシュの削除
arr.delete(“Science”)
要素だけを取り出すとき
arr.each_value do |value|
# 実行文
end
#キーと要素を取り出すとき
arr.each do |key, value|
# 実行文
end
・ソート
.sort キーのあいうえお順
.sort_by { | k, v | v } キーと要素を取り出し要素でソート
・シンボル
キーにコロンをつけることで色々と省略できる
arr = { :Japanese => 66, :Math => 80, … }
arr = { Japanese: 66, Math: 100, … }
※配列とはことなり{ }で囲う
※キーのないものを指定したとしてもエラーは吐き出さず何も表示されない
———————————————————
多次元配列
arr = Array.new(4).map{Array.new(3, 1)}
.mapメソッドを使用して創らないと変更があった時に全ての配列で変更が起こってしまう
———————————————————
関数
function add($a, $b){
$sum = $a + $b;
return $sum;
}
$result = add(1, 2);
def add(a, b)
sum = a + b
return sum
end
sum = add(1, 2)
———————————————————
正規表現
正規表現オブジェクトを作成するためには//で囲む。ex) /pattern/
.sub(pattern, replacement)
パターンに最初にマッチした部分のみを置き換える
.gsub(pattern, replacement)
パターンにマッチするすべてのものを置き換える
———————————————————