Rubyのデータ型


この章では、Ruby の基本的なデータ型を紹介します。

Ruby でサポートされるデータ型には、基本的な数値、文字列、範囲、シンボル、および true、false、nil の特殊な値に加えて、2 つの重要なデータ構造である配列とハッシュが含まれます。


数値型(Number)

1.整数型(Integer)

整数型は2種類あり、31ビット(4バイト)以内であればFixnumインスタンスとなります。それを超える場合、それは Bignum インスタンスです。

整数の範囲は、-230から230-1、または-262から262-1までです。この範囲内の整数はクラス Fixnum のオブジェクトであり、この範囲外の整数はクラス Bignum のオブジェクトに格納されます。

整数の前にオプションの先頭記号、オプションの基本インジケーター (8 進数の場合は 0、16 進数の場合は 0x、2 進数の場合は 0b) を使用し、その後に一連の数字を使用できます。数値文字列ではアンダースコア文字は無視されます。

ASCII 文字または疑問符の付いたエスケープ シーケンスの整数値を取得できます。

123                  # Fixnum 十进制
1_234                # Fixnum 带有下划线的十进制
-500                 # 负的 Fixnum
0377                 # 八进制
0xff                 # 十六进制
0b1011               # 二进制
"a".ord              # "a" 的字符编码
?\n                  # 换行符(0x0a)的编码
12345678901234567890 # Bignum
#整型 Integer 以下是一些整型字面量 
#字面量(literal):代码中能见到的值,数值,bool值,字符串等都叫字面量 
#如以下的0,1_000_000,0xa等 
a1=0 

#带千分符的整型 
a2=1_000_000 

#其它进制的表示 
a3=0xa 
puts a1,a2 
puts a3 

#puts print 都是向控制台打印字符,其中puts带回车换行符 
=begin 
这是注释,称作:嵌入式文档注释 
类似C#中的/**/ 
=end

浮動小数点

Rubyは浮動小数点数をサポートしています。小数点以下の数字です。浮動小数点数はクラス Float のオブジェクトであり、次のいずれかになります。

インスタンス

123.4                # 浮点值
1.0e6                # 科学记数法
4E20                 # 不是必需的
4e+20                # 指数前的符号
#浮点型 
f1=0.0 
f2=2.1 
f3=1000000.1 
puts f3

算術演算

加算、減算、乗算、除算演算子: +-*/; 指数演算子は**です

指数は整数である必要はありません、例えば

#指数算术 
puts 2**(1/4)#1与4的商为0,然后2的0次方为1 
puts 16**(1/4.0)#1与4.0的商为0.25(四分之一),然后开四次方根

文字列型

Ruby 文字列は単に 8 ビットのバイトのシーケンスであり、文字列のようなオブジェクトです。

二重引用符で囲まれた文字列では置換が可能ですが、一重引用符で囲まれた文字列では置換が許可されず、\ と ' の 2 つの円記号のみが許可されます。

インスタンス

インスタンス

#!/usr/bin/ruby -w

puts 'escape using "\"';
puts 'That\'s right';

インスタンスの実行 »

「インスタンスの実行」ボタンをクリックしてオンラインインスタンスを表示します

これにより、次の結果が生成されます:

escape using "\"
That's right

シーケンス #{ expr } を使用して、Ruby 式の値を文字列に置き換えることができます。ここで、 expr には任意の Ruby 式を指定できます。

#!/usr/bin/ruby -w

puts "Multiplication Value : #{24*60*60}";

これにより、次の結果が生成されます:

Multiplication Value : 86400
#!/usr/bin/ruby -w

name="Ruby" 
puts name 
puts "#{name+",ok"}"

出力は次のようになります:

Ruby
Ruby,ok

バックスラッシュ記号

次の表は、Ruby でサポートされているバックスラッシュ記号のリストです:

シンボルで表される文字
nラインフィード(0x0a)
rキャリッジリターン(0x0d)
fフォームフィード(0x0c)
b Backspaceキー(0x) 08)
a アラーム記号 ベル(0x07)
eエスケープ文字(0x1b)
sスペース文字(0x20)
nnn 8進数表記(nは0) -7)
xnn 16 進表記 (n は 0-9、a-f または A-F)
cx、C-xControl-x
M-xMeta-x (c | 0x80)
M-C-x メタコントロール-x
xキャラクターx

Ruby 文字列の詳細については、「Ruby 文字列」を参照してください。

Array

配列リテラルは [] で区切られたカンマで定義され、範囲定義をサポートします。

  • (1) [] インデックスを通じて配列にアクセスします

  • (2) 代入操作による要素の挿入、削除、置換

  • (3) +、- 記号、および記号による要素の結合と削除コレクションは新しいセットに表示されます

  • (4) < 記号を使用して元のデータに要素を追加します

  • (5) * 記号を使用して配列要素を繰り返します

  • (6) | および & 記号を使用して和集合演算を実行します (順序に注意してください)

インスタンス:

インスタンス

インスタンスの実行»
オンラインで表示するには、[インスタンスの実行] ボタンをクリックします。インスタンス

これにより、次の結果が生成されます:
#!/usr/bin/ruby
ary = [ "fred", 10, 3.14, "This is a string", "last element", ]
ary.each do |i|
    puts i
end

必要に応じて Ruby 配列の詳細については、「Ruby 配列 (配列)」を参照してください。

ハッシュタイプ

Ruby ハッシュは、中括弧内に配置された一連のキーと値のペアであり、キーと値はカンマとシーケンス => で区切られています。末尾のカンマは無視されます。

インスタンス

インスタンス

fred
10
3.14
This is a string
last element

インスタンスの実行»
「インスタンスの実行」ボタンをクリックしてオンラインインスタンスを表示します

これにより、次の結果が生成されます:
#!/usr/bin/ruby

hsh = colors = { "red" => 0xf00, "green" => 0x0f0, "blue" => 0x00f }
hsh.each do |key, value|
    print key, " is ", value, "\n"
end

Rubyハッシュの詳細については、 Rubyハッシュをチェックしてください。

範囲タイプ

範囲は間隔を表します。

範囲は開始値と終了値を設定することで表されます。範囲は、s..e および s...e を使用するか、Range.new を介して構築できます。


.. を使用して構築された範囲は、開始値から終了値まで (両端の値を含む) となります。 ... を使用して構築された範囲は、開始値から終了値まで (排他的に) 実行されます。イテレータとして使用すると、範囲はシーケンス内の各値を返します。

範囲 (1..5) は値 1、2、3、4、5 が含まれることを意味し、範囲 (1...5) は値 1、2、3、4 が含まれることを意味します。

インスタンス

インスタンス

red is 3840
green is 240
blue is 15

インスタンスの実行»
「インスタンスの実行」ボタンをクリックしてオンラインインスタンスを表示します

これにより、次の結果が生成されます:
#!/usr/bin/ruby

(10..15).each do |n|
    print n, ' '
end

Ruby スコープの詳細については、 Ruby の範囲を確認してください。