一步一步學Ruby(四):Ruby標準類型

Ruby 的標準類型包括數字(Numeric)、字符串(String)、區間(Range)以及正則表達式(Regexp)。
 
  • 數字
  • 字符串
  • 區間
  • 正則表達式

數字

Ruby 的數字包括整數(Integer)和浮點數(Float),這些類型都直接或間接繼承自 Numeric。Ruby 的整數並沒有長度限制,一定範圍內的整數是 Fixnum 對象,當超出該範圍則會自動轉換成 Bignum。
 
image

Fixnum < Integer < Numeric
Bignum < Integer < Numeric
Float < Numeric
image
所有的浮點數類型都是 Float,無論它有多長。
image

和所有的語言一樣,我們可以通過前導符號標定數字的格式。
  • 0 : 八進制。
  • 0d : 十進制。
  • 0x : 十六進制。 
  • 0b : 二進制。

image

我們可以用下劃線(_)來分隔數字。
a = 100_874_6   類似我們習慣的 123,456,789。
image

"?x" 和 "?\cx(或 ?\C-x)" 分別用於顯示字符或控制字符的整數值。
puts ?a
puts ?\n
puts ?\r
puts ?\ca # Ctrl + a
image

字符串

Ruby 字符串由 8bit 字節序列組成。字符串定義方式有很多種

簡單點的是用單引號或雙引號,當然包括我們熟悉的轉義符。
s = 'That\'s Right!'
s = 'escape using "\\"'
s = "Hello, World!"
其中雙引號字符串內部可以使用 #{expr}, 類似 C# String.Format。
可以使用局部變量,全局變量可省略大括號,也可以表達式。
image

另外還有更奇怪的,%q 相當於單引號,%Q 相當於雙引號,還有 "here documents"。這些標記都通過特定的分界標記來定義字符串。
image

字符串類 String 提供了大量的操作方法,細節可參考類庫文檔。

區間

區間表示一種序列。在 Ruby 中,使用 ".." 表示閉區間,而使用 "..." 表示半閉半開區間,區別在於閉區間包含右端的值,而半閉半開區間則不包含。
image
區間不僅僅是整數,也可以是字符串等。
image

區間類型 Range 提供了很多操作方法。
image

正則表達式

Ruby 在語言層面提供了正則表達式的支持,我們可以用下面三種方法創建 Regexp 對象。
image
我們可以用操作符 "=~" 來完成匹配(Match)操作。(操作副 "!~" 和此作用相反,是否定匹配)
image

"$~" 返回 MatchData 對象。
image
 
 

本文作者:王德水

未經本人同意,禁止轉載