ログ

学習の記録

チェリー本2章 学んだこと

変数名、メソッド名:スネークケース

num = 1
nums = [1,2,3]
favorite_food = "りんご"

def hoge_hoge
end

Javaのように変数だけ宣言とかしない、エラーになる

変数、メソッド名:数字始めはエラー

1_hoge #エラー
2hgoehoge #エラー

定数

NAME = "太郎"

変数:_始めは、宣言するけど使わない

hour = 1
min = 10
_sec = 25

メソッド名:_書き始めはあまりない

def _hoge_hoge
end

スネークケース

hoge_hoge

キャメルケース

hogeHoge

JavaScriptの変数宣言。 Rubyでは一般的でない。

パスカルケース(アッパーキャメルケース)

UserName

クラス名の命名規則

多重代入(paizaでよく使うイメージ)

# 多重代入
name, age = "yuzi",16

# 普通に変数に値を代入するやり方
name = "yuzi"
age = 16

上記は同等、お互いに無関係な値の場合は理解しづらいので下のやり方で代入する方が良い でも多重代入の方が1行でスッキリ感じる・・

sports, food = "野球","りんご"

上記のような全く関係ないものはよくなさそう

参考になったこと

・ケースバイケースだけど、戻り値があるものが式、変数に代入しようとするとエラーになるものが文(やろうと思えば戻り値を活用できる)

num = 1
lucky_num = 2

result = 
  if num == lucky_num
    "当選"
  else
    "落選"
  end

puts result 

・"+演算子"での文字連結は式展開(#{})の下位互換

・returnも使えるが、使わない方が主流 最後に評価された式がメソッドの戻り値 returnはメソッドを途中で脱出するときに使われることが多い

・戻り値 == 返り値 rubyでは戻り値にreturnを書かない方が好ましい 脱出するときに使うと良い 戻り値として返せるものを変数に入れることができる

・メソッドでの()省略は引数がないとき

あまり使わなさそう、頭の片隅に置くくらいで良さそうなこと

・ ;で文を複数記述できる

puts "a"; puts "b"
a
b
=> nil

・ \で文が続いていることを表せる

irb(main):018* "hoge".slice \
irb(main):019> 2
=> "g"

・通常""を使う、''は改行文字などをそのまま出力したいときに使う。 ""の中で、'’の挙動にしたかったら""の中のエスケープ文字、改行文字の前で\を入力する。

puts "こん\tにちは"
こん    にちは
=> nil

puts "こん\\tにちは"
こん\tにちは
=> nil

・if,elsifの後にthenを書くと、一文で書ける 普通のif文しか使ってなかったからわかりにくい・・

nilJavaのnullと同義、何もない false,nilが偽で、それ以外が真 偽 = falseとnil それ以外が真

box = "ball"
if box
  "ボールが入っています"
else
  "ボールは入っていません"
end

boxに何か入っているから、true スッキリした書き方ができる

box = "ball"

a = 
if box
  "ボールが入っています"
else
  "ボールは入っていません"
end

puts a # =>"ボールが入っています"

変数にif文の結果を格納できる

例題

fizzbuzzプログラムを作成する

def fizz_buzz(n)
  if n.modulo(15) == 0
    "#{n.to_s} FizzBuzz"
  elsif n.modulo(5) == 0
    "#{n.to_s} Buzz"
  elsif n.modulo(3) == 0
    "#{n.to_s} Fizz"
  else
    n
  end
end

number = 1..30
number.each do |num|
  puts fizz_buzz(num)
end

ruby fizz_buzz.rb
1
2
3 Fizz
4
5 Buzz
6 Fizz
7
8
9 Fizz
10 Buzz
11
12 Fizz
13
14
15 FizzBuzz
16
17
18 Fizz
19
20 Buzz
21 Fizz
22
23
24 Fizz
25 Buzz
26
27 Fizz
28
29
30 FizzBuzz

要件と違いますが、渡した値、空白、Fizz or Buzz or FizzBuzzで表示するようにしました

感想

戻り値を活用する、メソッドの自作、 メソッドの引数に別のメソッドの戻り値に使う、を使いこなせるようになりたいと感じた。 本の内容全部吸収するぞ!と意気込んで隅々読んでたらめちゃ時間かかりました\(^o^)/

https://qiita.com/jnchito/items/077f6d541d53152aa680
https://github.com/rubocop/ruby-style-guide
https://docs.ruby-lang.org/ja/latest/doc/spec=2fvariables.html#const
https://www.javadrive.jp/ruby/string/index2.html
https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html#not
https://qiita.com/jnchito/items/4e47559a4c821474233a

参考、引用: 著者 伊藤淳一 さん「プロを目指す人のためのRuby入門<改訂2版>」 出版社 技術評論社 (2021/11/29) 2章P22~P83