ProgateでRubyを勉強し始めたのですが、JavaScriptと似ている部分があり覚えやすかったです。
復習のためJSとの比較交えながらRubyについてまとめておきます。
JavaScriptやってる初心者でバックエンド言語何にしようかと迷っている方にはとっつきやすいと思いました。
初心者の言語選定などの参考になれば幸いです。
##コンソールに値を表示させるコマンド
JSで言うconsole.log。これはJSと少し違う。
puts "Hello world"
# メモ書き
##変数宣言
constとかいらないのね
name = "げん"
##変数の命名 2語以上の場合はアンダーバーで区切る
user_name
##変数の上書きができる。
JSのvarみたいな感じと解釈。
JSのconstでは上書きできなかった
age = 2
age = 3 #上書きされる
##変数の更新
変数xの値を既存の変数xを使って更新
x = x + 10
##省略記法
x += 10
##文字列の間に変数を埋め込む。
JSでいうテンプレートリテラル(``)。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Template_literals
Rubyでは"(ダブルコーテーション)で囲まれた文字列の中に、#{}を含め、その中に変数を書き込むと文字列の間に変数の値を入れることができる。
Rubyで文字列を書く場合は基本的に"(ダブルコーテーション)を使うことにしておこう。
name = "げん"
puts "僕の名前は#{name}です"
#出力は 僕の名前はげんです になる
##if文
ifとendで囲む。
JSと比べるとendで終わるのが違う点。
あと、2つ目の条件分岐がelseifではなくelsif。elseの「e」が不要。
score = 94
if score > 80
puts "よくできました"
elsif score > 60
puts "まずまずです"
else
puts "がんばりましょう"
end
##条件の組み合わせ
これは一緒。
&&
||
配列
language = ["日本語","英語","スペイン語"]
配列へのアクセス
JSと一緒。
language[0]
繰り返し処理 each
これはJSとはだいぶ違う書き方。
sports = ["バスケ","サッカー","野球"]
num = 3
sports.each do | sport |
puts "#{sport}ができます"
end
each文内の変数sportはeach文の内側でしか使用できない。
each文の外で宣言された変数はeach文の中身で使用できる。
ハッシュ JSで言うオブジェクトのようなもの
{"name" => "gen","age" => 2}
ハッシュへのアクセス
JSのオブジェクトの角括弧記法と同じ.
pet = {"name" => "gen","age" => 2}
pet["name"] # genにアクセスできる
## シンボル
キーの先頭に「:」をつけると、ダブルコーテーションと同じ役割を果たす。
値を取り出すときも、シンボルを記載する必要がある。
pet = {:name => "gen",:age => 2}
pet[:name] # アクセスするときもシンボルを記載
シンボル省略形
けっきょくJSのオブジェクトと一緒やないかい
pet = {name: "gen",age: 2}
pet[:name] # アクセスするときは先頭にシンボルの記載はやっぱり必要
ハッシュ内部のキーの有無で条件分岐
JSでも似たような感覚でif文かいてた。
pet = {name: "gen",kind: "柴犬"}
puts pet[:age] #nilが出力される。これを利用して条件分岐できる。
if pet[:age] #nilが返るのでelse以下の文章が出力される。
puts "ペットの年齢は#{age}です"
else
puts "ペットの年齢がわかりません"
end
配列の中にハッシュが入ることもある。
JSと同様。
arr = [{},{}]