コンテンツにスキップ

Rubyの基本構文

出力

1
2
3
4
5
6
7
8
# 改行なし
print 'hello world'

# 改行あり
puts 'hello world'

# デバッグ用(データの型などがわかりやすい)
p 'hello world'

コメント

1
2
3
4
5
6
7
# 1行コメント

=begin
複数行
複数行
複数行
=end

変数

英小文字かアンダースコアで定義する([a-z]_)

1
2
aaaa = "hey"
_aaa = "hey"

定数

英大文字で定義する

1
AAA = "hey"

!について

破壊的なメソッドと呼ばれている

upcase ... 文字列を大文字にしたものを返すだけ upcase! ... 文字列を大文字にしたものを返しつつ、もとの文字列も大文字にする

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
name = 'tarou'
puts name.upcase
# TAROU
puts name
# tarou

puts name.upcase!
# TAROU
puts name
# TAROU

?について

真偽値を返すメソッド

1
2
p name.empty? # false
p name.include?('A') # true

配列

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
colors = ['red', 'blue', 'green', 'yellow', 'purple']

p colors[0] # 最初から red
p colors[-1] # 最後から purple
p colors[0..2] # 0~2の値を表示 [red, blue, green]
p colors[0...2] # 0~2の直前までの値を表示
p colors[10] # 範囲外の場合は nil になる

# 値の書き換え
colors[0] = 'change red'
colors[1..3] = ['change blue', 'change_green']

#値の追加
colors.push('white')

#値の追加(pushと同じ処理)
colors << 'black'

ハッシュ

1
2
3
4
5
6
7
# 全て同じ
# scores = {"a" => 100, "b" => 200}
# scores = {:a => 100, :b => 200}
scores = {a: 100, b: 200}

# 扱い方は配列とほぼ同じ
p scores[:a]

オブジェクトの変換について

1
2
3
4
5
6
x = 100
y = '20'

p x + y.to_i # integerに変換
p x + y.to_f # floatに変換
p x.to_s + y # stringに変換

ハッシュと配列の相互変換について

1
2
3
4
scores = {a: 20, b: 50}

p scores.to_a # arrayに変換
p scores.to_a.to_h # hashに変換

%をつかった記法

ダブルクオーテーションと同じ動作

1
2
3
4
5
6
puts "hello"
puts %Q(hello)
puts %(hello)

puts ["red", "blue"]
puts %W(red blue)

シングルクオーテーションと同じ動作

1
2
3
4
5
puts 'hello'
puts %q(hello)

puts ['red', 'blue']
puts %w(red blue)

特殊文字について

文字列に「"」を使いたいとき

1

%記法なら以下のようにかけるので見やすい

1
2
3
puts %Q(he"llo)
puts %(he"llo)
puts %q(he'llo)