Ruby入門 - 数値・文字列・型

トップ > Ruby入門 > 数値・文字列・型

整数(Integer)

整数(Integer)は下記の様に記述します。

num = 1234        // 正の整数
num = -1234       // 負の整数

0d, 0x, 0o, 0b はそれぞれ、10進数、16進数、8進数、2進数を意味します。

num = 0d1234       // 10進数 (0dで始まる数値は10進数とみなされる)
num = 0xffff       // 16進数 (0xで始まる数値は16進数とみなされる)
num = 0o777        //  8進数 (0oで始まる数値は 8進数とみなされる)
num = 0b11000100   //  2進数 (0bで始まる数値は 2進数とみなされる)

数値の途中のアンダーバー(_)は無視されます。これは、桁数の多い数値をわかりやすく表現する際に利用されます。

num = 1_230_000_000       // 1,230,000,000

浮動小数点数(Float)

浮動少数点数(Float)は下記の様に記述します。

num = 1.234     // 浮動小数点数
num = 1.2e3     // 浮動小数点数(指数表記) 1.2 × 103

論理型(Boolean)

論理値(Boolean)は、true または false で表します。これらは、TrueClass, FalseClass クラスの唯一のインスタンスです。

bool = true
bool = false

文字列(String)

文字列(String)は、ダブルクォート(")、またはシングルクォート(')で囲みます。

str = "Hello world"
str = 'Hello world'

"..." の中では ' を、'...' の中では " を使うことができます。"..." の中で " を、'...' の中で ' を使用するには、バックスラッシュ(\)を用いて引用符をエスケープ(無効化)します。

str = "He said \"I'll be back.\""
str = 'He said "I\'ll be back."'

"..." の中では、後述のバックスラッシュ記法や、式展開を用いることができます。'...' の中では \\ と \' のみが意味を持ちます。

str = "My name is #{name}.\n"

エスケープシーケンス(\x)

"..." の中では、バックスラッシュ(\)を用いて、下記のエスケープシーケンスを使用できます。

\t : タブ(TAB:0x09)
\v : 垂直タブ(VT:0x0b)
\n : 改行(ラインフィード:LF:0x0a)
\r : キャリッジリターン(CR:0x0d)
\f : フォームフィード(FF:0x0c)
\b : バックスペース(BS:0x08)
\a : ベル(BEL:0x07)
\e : エスケープ(ESC:0x1b)
\s : 空白(SPC:0x20)
\\ : バックスラッシュ(\)
\改行 : 改行(LF:0x0a)
\nnn : 8進表記文字(nは0~7)
\xnn : 16進表記文字(nは0~f)
\unnnn : ユニコード文字nnnn (Ruby 1.9~)
\u{nnnn} : ユニコード文字nnnn (Ruby 1.9~)
\cx : コントロール文字(xはASCII文字)
\C-x : コントロール文字(xはASCII文字)
\M-x : メタ文字(xはASCII文字)
\M-\C-x : メタコントロール

式展開(#{...})

文字列の中では、#{式} の形式で 式展開 することができます。

name = "Tanaka"
puts "My name is #{name}"          #=> My name is Tanaka

x = 5; y = 3
puts "Answer is #{ x + y }"        #=> Answer is 8

式が変数で、@ や $ で始まる場合は、{ } を省略することができます。

puts "My name is #{@name}"
puts "My name is #@name"

式展開を抑止するには、# の前にバックスラッシュ(/)を書きます。

puts "You can use \#{expression} notation in the ruby string."

コマンド出力(`...`)

バッククォート(`)で囲まれた文字列は、バックスラッシュ記法や式展開が行われた後、コマンド出力として実行され、コマンドの実行結果が文字列として返されます。

puts `date`        # => Thu Sat 18 18:15:47 JST 2013

コマンドの終了ステータスを得るには、$? を参照します。

date = `date`
status = $?

ヒアドキュメント(<<)

ヒアドキュメント(<<識別子)の構文を用いて、複数行の文字列を現すことができます。下記の例では、This is ~ の2行が表示されます。識別子は、アンダーバー(_)を含む半角英数字(最初の文字は数値以外)であれば何でも使用できます。

print <<END_OF_STRING
This is Japan.
This is America.
END_OF_STRING

最後の識別子のみの行は、行頭や行末にスペースを入れることが許されません。ただし、<<-識別子 の構文を用いると、先頭のスペースが許可されます。

  print <<-EOS
This is Japan.
This is America.
  EOS

識別子をダブルクォート(")、シングルクォート(')、バッククォート(`)で囲むと、それぞれ、"...", '...', `...` で囲まれた文字列の様に振る舞います。ただし、"..." の中での " や、'...' の中での ' はエスケープする必要はありません。

print <<EOS            # Same as "EOS"
My name is #{name}.
EOS

print <<"EOS"
My name is #{name}.
EOS

print <<'EOS'
You can use #{expression} notation.
EOS

print <<`EOS`
date
EOS

一度に複数のヒアドキュメントを使用することもできます。

print <<FIRST, <<SECOND
  This is the first string.
FIRST
  This is the second string.
SECOND

Copyright(C) 2014 杜甫々
初版:2014年12月30日、最終更新:2014年12月30日
http://www.tohoho-web.com/ruby/types.html