Rubyにおける定数
Rubyでは変数だけでなく定数を定義することができる。
名前をすべて大文字で書くことにより定数となる。
簡単に更新したくないものは定数として定義すると良い。
sample_01.rb
name = "変数のMito" # 変数
NAME = "定数のMito" # 定数
しかし、これらは値を更新しないように注意を促すにすぎず、値自体は更新できる。
実行時にWarningが表示される。
複数行のコメントアウト方法は以下の3つ
sample_02.rb
# ① 1行ずつ「#」でコメントアウト(範囲選択後、「Command + /」)
# ここがコメントになる
# ② 「=begin」と「=end」で囲む
=begin
ここがコメントになる
=end
# ③ 「__END__」(以下すべてコメントアウト)
__END__
以下すべてコメントになる
!!!俺もコメント!!!
!!!私もコメント!!!
入力の受け取りについて
「gets」で入力を受け取ることができる。
単に「gets」としても受け取り可能だが、受け取った値の直後が改行される。
「gets.chomp」の場合は改行されない。
sample_03.rb
name_01 = gets # 直後に改行が入る
name_02 = gets.chomp # 直後に改行が入らない
以下を参照した。
Rubyのgetsメソッドにおけるgets.chompの意味と使い方
文字列の特定の位置へアクセス
文字列はインデックスを持っている。
1文字目のインデックスは「0」、2文字目のインデックスは「1」......となる。
sample_04.rb
name = "Mitoshima"
puts name[0] #インデックス0の「M」が出力される
name[0] = "*"
name[1] = "*"
name[2] = "*"
puts name #先頭3文字が「*」に置き換えられるため、「***oshima」と出力される
文字列の長さを調べる
「length」と「size」は機能的に違いはない。
sample_05_01.rb
name = gets
# "Mito"と入力されたとする
puts name.length # 「5」が出力される(「4」ではない)
puts name.size # 「5」が出力される(「4」ではない)
上記の例のように1文字分多く結果が出力されてしまうのは、入力時のEnterキーによって改行が含まれるからである。
「strip」を使えば改行や余計な空白を取り除くことができる。
sample_05_02.rb
name = gets.strip
# "Mito"と入力されたとする
puts name.length # 「4」が出力される
puts name.size # 「4」が出力される
値の詳細を調査する
先の例では、対象のリテラルは4文字のはずなのに5文字であるという結果が返ってきた。
そのような場合は「p」を使えば値の詳細を調べることができる。
sample_06.rb
name = gets
# "Mito"と入力されたとする
puts name.length # 「5」が出力される(「4」ではない)
puts name.size # 「5」が出力される(「4」ではない)
# 値の詳細を調べる
p name # 「"Mito\n"」と出力される
文字列の末尾に余計な改行が入っていることが分かる。