Yuki Matsumoto

To be engneer soon / Ruby on Rails

Rubyの基礎をメモってみる

2019-02-27 Yuki MatsumotoRuby

プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法までプロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ) で学んだ内容をメモ形式でアウトプットします。 ※自分が必要と思う内容のメモになるので情報が飛び飛びであまり役に立つ情報ではないことをご容赦ください。

Rubyの基礎

変数名は週間としてスネークケースにする

total_price = 1000 # 正しい書き方
totalPrice = 1000 # 一般的ではない書き方

式展開や改行文字を埋め込む場合はダブルクオートを使う必要があるが、それ以外であればどちらでも大丈夫。

name = 'yuki'
puts "Hello, #{name}!" => Hello, yuki!

数値

割り算

1/2 # => 0
1.0/2 # => 0.5

to_fメソッドを使って整数を少数に変更する

n = 1
n.to_f # => 1.0

割り算の余りを出す

8 % 3 # => 2

Rubyでは数値と文字列を計算する場合は明示的に宣言する必要がある

1 + '10' # => Error
1 + '10'.to_i # => 11

※少数を扱う場合は丸め誤差に注意

0.1 * 3.0 # => 0.30000000000000004

Rationalクラスを使うことで解消できる

0.1r*3.0r#=>(3/10)

メソッドの戻り値

Rubyでは戻り値にreturnを付ける必要がない

def greeting(country) #"こんにちは"または"hello"がメソッドの戻り値になる
  if country=='japan'
    'こんにちは'
  else
    'hello'
  end
end
greeting('japan') #=>"こんにちは"
greeting('us') #=>"hello"

文字列について

ヒアドキュメントについて

複数行に渡る文字列はヒアドキュメント(行指向文字列リテラル)を使うことでスッキリ書ける

<<識別子
line 1
line 2
line 3
識別子

例:

a=<<TEXT
これはテストです。
複数行の文字列を作成します。
TEXT
puts a
# => これはテストです。
# 複数行の文字列を作成します。

式展開も可能

name='Alice'
a=<<TEXT
ようこそ、#{name}さん!
以下のメッセージをご覧ください。
TEXT
puts a
#=>ようこそ、Aliceさん!
#以下のメッセージをご覧ください。

真偽値と条件分岐について

一般的な演算子 -> &&, || 優先度が低い演算子 -> and, or, not 優先順位 ! > && > || > not > and, or ※優先度が同じ場合は左から右へ順番に評価される

andは両方trueでないとtrueにはならない
orは片方どちらかがtrueであればtrueになる

例:

bottle_exist = true
bottle_opend = true
drinkable = false

bottrle_exist and bottle_opened => drinkable = true
bottle_exist = true
bottle_opened = false
drinable = false

bottle_exist or bottle_opened -> drinkable = true

まとめ

今回はRubyの基礎をメモとして書いてみました。まだ簡単な内容ばかりですがだんだん難易度が上がっていくと思います。早くRubyを使いこなせるようになりて〜