0
0

Rubyの基本(文法)

Last updated at Posted at 2024-02-25

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"」と出力される

文字列の末尾に余計な改行が入っていることが分かる。

0
0
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
0
0