Ruby 的标准类型包括数字(Numeric)、字符串(String)、区间(Range)以及正则表达式(Regexp)。
数字
Ruby 的数字包括整数(Integer)和浮点数(Float),这些类型都直接或间接继承自 Numeric。Ruby 的整数并没有长度限制,一定范围内的整数是 Fixnum 对象,当超出该范围则会自动转换成 Bignum。
Fixnum < Integer < Numeric
Bignum < Integer < Numeric
Float < Numeric
所有的浮点数类型都是 Float,无论它有多长。
和所有的语言一样,我们可以通过前导符号标定数字的格式。
- 0 : 八进制。
- 0d : 十进制。
- 0x : 十六进制。
- 0b : 二进制。
我们可以用下划线(_)来分隔数字。
a = 100_874_6 类似我们习惯的 123,456,789。
"?x" 和 "?\cx(或 ?\C-x)" 分别用于显示字符或控制字符的整数值。
puts ?a
puts ?\n
puts ?\r
puts ?\ca # Ctrl + a
字符串
Ruby 字符串由 8bit 字节序列组成。字符串定义方式有很多种
简单点的是用单引号或双引号,当然包括我们熟悉的转义符。
s = 'That\'s Right!'
s = 'escape using "\\"'
s = "Hello, World!"
其中双引号字符串内部可以使用 #{expr}, 类似 C# String.Format。
可以使用局部变量,全局变量可省略大括号,也可以表达式。
另外还有更奇怪的,%q 相当于单引号,%Q 相当于双引号,还有 "here documents"。这些标记都通过特定的分界标记来定义字符串。
字符串类 String 提供了大量的操作方法,细节可参考类库文档。
区间
区间表示一种序列。在 Ruby 中,使用 ".." 表示闭区间,而使用 "..." 表示半闭半开区间,区别在于闭区间包含右端的值,而半闭半开区间则不包含。
区间不仅仅是整数,也可以是字符串等。
区间类型 Range 提供了很多操作方法。
正则表达式
Ruby 在语言层面提供了正则表达式的支持,我们可以用下面三种方法创建 Regexp 对象。
我们可以用操作符 "=~" 来完成匹配(Match)操作。(操作副 "!~" 和此作用相反,是否定匹配)
"$~" 返回 MatchData 对象。
|
请发表评论