LoginSignup
8
10

More than 5 years have passed since last update.

rubyの記法チートシート

Last updated at Posted at 2017-11-26

この記事の目的

いくつかの言語を勉強しているとrubyのときは配列どうだったっけ?とか迷うことがあるのでそれらをすぐに思い出すためのシート

命名

  • クラス名、モジュール名・・・単語のはじめを大文字で始める(パスカルケース)
  • メソッド名・・・単語は小文字ではじめ単語の間は_を用いる(スネークケース)
  • 変数名・・・単語は小文字ではじめ単語の間は_を用いる
  • 真偽を表すメソッド名・・・真偽値を返すメソッド名は?で終わる
  • 定数・・・アルファベット大文字のみで書く(スクリーミングスネークケース)
  • 破壊的メソッド・・・破壊的でない同名のメソッドがある場合,破壊的メソッド名は!で終わる

出力

puts

# 引数を標準出力。出力の後に改行される。

print

# 引数を標準出力。改行はされない!

p

# 引数の内容を詳しく標準出力。改行される。文字列であれば””で囲まれていて、数値はそのまま出力される。

pp

# pと同様の標準出力。出力される内容が、適切なインデントと改行で整形されている。pだと、改行などがないから見にくくなる。

%()記法

「Rubyで%記法(パーセント記法)を使う」
https://qiita.com/mogulla3/items/46bb876391be07921743

コードブロック

rubyでは

  • do...end
  • {...}

でブロックを区切る。

改行

基本的にはrubyは式と式を改行で区切ります。しかし、;で1行で表すこともできます。

test
name = 'ruby';puts(name.updase)

コメントアウト

rei
# コメント

# --1行コメントは「#」のあとに書く

=begin 
コメント
=end

# -- 「=begin」から「=end」の間がコメントになる

__END__

# -- この行以降すべてがコメントになる

# 変数

```ruby:例
rei = "例"

=でつなぐだけ。変数を展開する場合は下記のように書く

word = "world"
puts "hello,#{word}"

ローカル変数

上記の変数で下記の場合のみ効く非常に狭い範囲の変数。

  • ブロック
  • メソッド定義
  • クラス/モジュール定義
  • トップレベル

グローバル変数

$rei = "例"

$を変数名の先頭につけるとどこからでも参照できるようになる。

定数

REI = "例"

全部大文字で書くと定数になり、一度しか代入できなくなります。つまり値を変更したくないときに使うものです。

多重代入

a,b = 1,2
a => 1
b => 2

# 余った場合は無視
a,b = 1,2,3
a => 1
b => 2

# 配列の代入
a,*b = [1,2,3]
a => 1
b => [2,3]

メソッド

def say(name)
  puts "Hi #{name}"
end
say("tarou")

詳しくは
https://qiita.com/you88/items/a3a6e972d6f3b87edbcb

条件分岐

if文

if n = 1
 puts "nは1です"
else
 puts "nは1じゃないです"
end

unless n = 1
 puts "nは1じゃないです"
else
 puts "nは1です"
end

unlessはelsifを使えない。

case文

case signal
when "red"
  puts "stop"
when "green","blue"
  puts "go"
else
  puts "go"
end

詳しくはこちら
https://qiita.com/you88/items/5744a26eb2db8839a644

配列(Array)

colors = ["red","white"]
puts colors[1]
=> "white"

# 配列の追加

animals = ["dog", "cat", "mouse"]
animals << "pig"
p animals

=> ["dog", "cat", "mouse", "pig"]

詳しくは
https://qiita.com/you88/items/83d694d223461df7a068

ハッシュ(連想配列)の書き方

# キーが文字列の場合の配列

users = {"name" => "yohei","age" => 20}

# キーをシンボルにする

users = {:name => "yohei",:age => 20}

# シンボルの省略形

users = {name: "yohei", age: 20}

詳しくは
https://qiita.com/you88/items/0c78a310c836741c3c93

each


オブジェクト.each do |変数|

end

オブジェクト.each {|変数|

}

classの継承

class Parent
end

class Child < Parent
 def ababa
 end
end

その他の豆知識

その他
a ||= true
# 左辺が未定義、もしくはfalseなら代入。||はorの意味なのでもしくは代入の意味。

  def logged_in?
    !!session[:user_id]
  end
# !!はメソッドの返り値をtrue,falseに変える。今回はsessionがあるかないかを聞くメソッドであればtrue、なければfalseを返す

8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10