了解 Ruby 的变量和常量后,我们来进一步学习 Ruby 的数据类型。

在 Ruby 中数据分为六种,分别是:

  • 字符串(String)

  • 数字(Number)

  • 数组(Array)

  • 哈希表(Hash)

  • 布尔(Boolean)

  • 字符(Symbol)

字符串(String)

字符串使用一对双引号(")包围。

irb(main):001:0> "123".class
=> String
irb(main):002:0> "123ewrwer".class
=> String
irb(main):003:0> "123ewrwer.class".class
=> String

数字(Number)

数字并不是一种数据类型,数字在 Ruby 中分为类型:

  • Fixnum

  • Bignum

  • Float

其中,FixnumBignum 均为整数,它们的区别仅仅是可表示范围大小的不同(很显然 Bignum 的范围更大);而 Float 表示浮点数。

irb(main):001:0> 12.class
=> Fixnum
irb(main):002:0>1282872837218937218372189321837218937129.class
=> Bignum
irb(main):002:0> 123.456.class
=> Float
irb(main):002:0> 12828e7.class
=> Float

数组(Array)

数组使用一对方括号([])包围,其中多个元素之间使用逗号(,)分割,最后一个元素后面不加逗号。

irb(main):001:0> arr = [1,"abc",12.3]
=> [1, "abc", 12.3]
irb(main):002:0> arr.class
=> Array

获取数组元素的值,使用 数组变量标识符[元素下标],元素下标以0开始。

irb(main):003:0> arr[1]
=> "abc"

哈希表(Hash)

哈希表其实就是字典(Dictionary),使用一对大括号({})包围,元素以键值对的形式出现,键值之间使用 => 分割,其中多个元素之间使用逗号(,)分割,最后一个元素后面不加逗号。

irb(main):001:0> somehash = {:name => "Meniny",:age => 18}
=> {:name=>"Meniny", :age=>18}
irb(main):002:0> somehash.class
=> Hash

获取哈希表元素的值,使用 哈希表变量标识符[元素键名]

irb(main):003:0> somehash[:name]
=> "Meniny"

布尔(Boolean)

布尔只有两种取值,分别是 truefalse。严格来说在 Ruby 中并没有布尔这个类型,其值分别属于 TrueClassFalseClass 两个类。


irb(main):001:0> true.class
=> TrueClass
irb(main):002:0> false.class
=> FalseClass
irb(main):003:0> somebool = true
=> true
irb(main):004:0> somebool.class
=> TrueClass
irb(main):005:0>

字符(Symbol)

字符以冒号(:)开头,哈希表中使用的键名就是符号类型。

irb(main):001:0> :somesym.class
=> Symbol