Rubyコーディング規約まとめ
自分メモ。随時追記
2018/02/08
・演算子の前後、コンマ、コロン、セミコロンの後ろにはスペースを入れる
sum = 1 + 2 a, b = 1, 2 1 > 2 ? true : false; puts 'Hi' class FooError < StandardError; end
例外は、指数演算子。
# 悪い例
e = M * c ** 2
# 良い例
e = M * c**2
・(
, [
の後ろ、]
, )
の前にはスペースなし。
{
の前後、}
の前にはスペースあり。 [link]
# 良い例
some(arg).other
[1, 2, 3].each { |e| puts e }
・メソッドの引数に初期値を割り当てるとき、 =
演算子の周りにはスペースを入れる。 [link]
# 良い例
def some_method(arg1 = :default, arg2 = nil, arg3 = [])
# do something...
end
・可読性のため、大きな数値にはアンダースコアをつけましょう。 [link]
# 悪い例 - 0はいくつありますか?
num = 1000000
# 良い例 - 人の頭でもより簡単に解析できます
num = 1_000_000
・数値リテラル(数値や文字列を直接に記述した定数)のプレフィックス(接頭語)には、英小文字を使用する。
8進数→0o
16進数→0x
2進数→0b
10進数→0d
[link]
# 悪い例
num = 01234
num = 0O1234
num = 0X12AB
num = 0B10101
num = 0D1234
num = 0d1234
# good - プレフィックスと数字の分離が容易
num = 0o1234
num = 0x12AB
num = 0b10101
num = 1234
・メソッド呼び出しの引数の周りに括弧を使用する。
f((3 + 2) + 1)
のようにメソッドの最初の引数が開き括弧で始まる場合は、 特に括弧を用いる。 [link]
# 悪い例
x = Math.sin y
array.delete e
temperance = Person.new 'Temperance', 30
# 良い例
x = Math.sin(y)
array.delete(e)
temperance = Person.new('Temperance', 30)
・オプション引数は引数リストの最後に定義する。
引数リストの先頭にあるメソッドを呼んだ場合、 Rubyの挙動が予測不能 [link]
# 悪い例
def some_method(a = 1, b = 2, c, d)
puts "#{a}, #{b}, #{c}, #{d}"
end
some_method('w', 'x') # => '1, 2, w, x'
some_method('w', 'x', 'y') # => 'w, 2, x, y'
some_method('w', 'x', 'y', 'z') # => 'w, x, y, z'
# 良い例
def some_method(c, d, a = 1, b = 2)
puts "#{a}, #{b}, #{c}, #{d}"
end
some_method('w', 'x') # => '1, 2, w, x'
some_method('w', 'x', 'y') # => 'y, 2, w, x'
some_method('w', 'x', 'y', 'z') # => 'y, z, w, x'
※オプション引数…メソッドの引数の括弧内で引数を定義するもの?