Date
Jul. 14th, 2024
 
2024年 6月 9日

Post: Ruby Primer 005: Data Type

Ruby Primer 005: Data Type

Published 12:02 Feb 28, 2013.

Created by @ezra. Categorized in #Programming, and tagged as #Ruby.

Source format: Markdown

Table of Content

了解 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
Pinned Message
HOTODOGO
I'm looking for a SOFTWARE PROJECT DIRECTOR / SOFTWARE R&D DIRECTOR position in a fresh and dynamic company. I would like to gain the right experience and extend my skills while working in great teams and big projects.
Feel free to contact me.
For more information, please view online résumé or download PDF
本人正在寻求任职 软件项目经理 / 软件技术经理 岗位的机会, 希望加⼊某个新鲜⽽充满活⼒的公司。
如有意向请随时 与我联系
更多信息请 查阅在线简历下载 PDF