Ruby データ型
この章では、Ruby の基本データ型について紹介します。
Ruby がサポートするデータ型には、基本的な Number、String、Ranges、Symbols と、true、false、nil という特別な値、そして Array と Hash という 2 つの重要なデータ構造があります。
数値型(Number)
1、整数型(Integer)
整数型には2種類あります。31ビット以内(4バイト)であれば Fixnum インスタンス、それを超えると Bignum インスタンスになります。
整数の範囲は -230から 230-1、この範囲内の整数はクラスFixnumのオブジェクトです。整数値が2の30乗以上の場合( -262から 262-1)、自動的に Bignum 型に変換されます。
整数の前には、オプションの符号、オプションの基数指示子(0 は octal、0x は hex、0b は binary に対応)、その後に一連の数字を使用できます。アンダースコア文字は数値文字列内では無視されます。
ASCII 文字または疑問符を付けたエスケープシーケンスの整数値を取得できます。
例
浮動小数点型
Ruby は浮動小数点数をサポートします。浮動小数点数は小数を含む数値です。浮動小数点数はクラスFloatのオブジェクトであり、次のいずれかになります。
例
例
算術演算
加減乗除の演算子:+-*/。指数演算子は ** です。
指数は整数である必要はありません。例えば
例
文字列型
Ruby の文字列は、簡単に言うと 8 ビットのバイト列であり、String クラスのオブジェクトです。
ダブルクォートで囲まれた文字列は置換とバックスラッシュ記法を利用できます。シングルクォートで囲まれた文字列は置換を許可されず、\\ と \' の2つのバックスラッシュ記法のみ使用できます。
これにより次の結果が生成されます:
escape using "\" That's right
以下のシーケンスを使用できます。#{ expr }任意の Ruby 式の値を文字列に置換します。ここで、expr は任意の Ruby 式にできます。
例
これにより次の結果が生成されます:
相乘 : 86400
例
出力結果は次のとおりです:
Ruby Ruby,ok
バックスラッシュ記法
次の表は、Ruby がサポートするバックスラッシュ記法の一覧です:
| 表記 | 表される文字 |
|---|---|
| \n | 改行 (0x0a) |
| \r | 復帰 (0x0d) |
| \f | 改ページ (0x0c) |
| \b | バックスペース (0x08) |
| \a | ベル (0x07) |
| \e | エスケープ (0x1b) |
| \s | スペース (0x20) |
| \nnn | 8進数表記(n は 0-7) |
| \xnn | 16進数表記(n は 0-9、a-f または A-F) |
| \cx, \C-x | Control-x |
| \M-x | Meta-x (c | 0x80) |
| \M-\C-x | Meta-Control-x |
| \x | 文字 x |
Ruby 文字列の詳細については、以下を参照してください。Ruby 文字列(String)。
配列
配列リテラルは [] 内にカンマ区切りで定義し、range 定義にも対応しています。
- (1)配列は [] によるインデックスでアクセスします。
- (2)代入操作で要素の挿入、削除、置換を行います。
- (3)+ と - で要素の結合と削除を行い、結果は新しい集合として返ります。
- (4)<< で元のデータに要素を追加します。
- (5)* で配列要素を繰り返します。
- (6)| と & で和集合と積集合の操作を行います(順序に注意)。
例
試してみる »
これにより次の結果が生成されます:
fred 10 3.14 This is a string last element
Ruby 配列の詳細については、以下を参照してください。Ruby 配列(Array)。
ハッシュ型
Ruby のハッシュは、波括弧内に一連のキー/値ペアを置きます。キーと値の間はカンマと => の並びで区切ります。末尾のカンマは無視されます。
例
例
試してみる »
これにより次の結果が生成されます:
red is 3840 green is 240 blue is 15
Ruby ハッシュの詳細については、以下を参照してください。Ruby ハッシュ(Hash)。
範囲型
範囲(Range)は区間を表します。
範囲は、開始値と終了値を設定して表します。範囲は s..e や s...e を使用して構築するか、Range.new を使用して構築できます。.. を使用して構築した範囲は、開始値から終了値まで(終了値を含む)を表します。... を使用して構築した範囲は、開始値から終了値まで(終了値を含まない)を表します。イテレータとして使用すると、範囲はシーケンス内の各値を返します。
範囲 (1..5) は値 1, 2, 3, 4, 5 を含み、範囲 (1...5) は値 1, 2, 3, 4 を含みます。
これにより次の結果が生成されます:
10 11 12 13 14 15
Ruby 範囲の詳細については、以下を参照してください。Ruby 範囲(Range)。
その他の拡張