概括、ruby中的基礎資料型別 (Elementary Data Type)都是類類型,只不過為了書寫和閱讀的方便,為基礎資料型別 (Elementary Data Type)提供了較為簡潔的書寫方式而已。
一、數實值型別
整數支援二進位,八進位,十進位,十六進位,根據整數的大小動態決定整數是Fixnum類型還是Bignum類型。
浮點數支援科學計數法,小數點後至少有一個數字。
數實值型別繼承圖如下:
複製代碼 代碼如下:
Numeric
|--Integer
|--Fixnum
|--Bignum
|--Float
|--Complex(標準庫)
|--BigDecimal(標準庫)
|--Rational(標準庫)
二、字串
ruby中沒有字元,只有字串。
單引號字串,只有 ' 和 \ 需要進行轉義,其他的字元保持字面的含義。('表示單引號字串的首尾所以需要轉義,而想一下單引號字串中只有一個字元\時就明白\也需要轉義了。)
雙引號字串,雙引號字串最大的特點是可以進行數值插入,產生雙引號字串的方式有很多種。
複製代碼 代碼如下:
insert=100
#單引號字串
print '#{insert}_string' #{insert}_string
print "\n"
print %q/#{insert}_string/ #分隔字元%q表示單引號字串
print "\n"
#雙引號字串
print "#{insert}_string\n" #100_string
print %/#{insert}_string\n/ #分隔字元%或者%Q可以表示雙引號字串
print %Q/#{insert}_string\n/
#多行字串
print "first line
second line
third line\n" #可以直接寫在多行
print <<-'multi_line' #-可以使終止符號不用必須在行首,''表示不進行插入
first line#{insert}
second line
multi_line
str1='good' #字串是可以修改的
str1[0]='h'
print str1
三、區間
區間提供了處理值具有連續特性的對象集合的簡便方法,ruby為了節省空間的只是在記憶體中保留了區間首尾兩個對象的引用。
複製代碼 代碼如下:
for i in 1..3 #閉合區間,輸出123
print i
end
print "\n"
for i in "num1"..."num3" #首閉後開,輸出num1num2
print i
end
四、數組
可以容納各種類型對象的集合。
複製代碼 代碼如下:
arr1=[1,2,3,"num1"]
arr2=%w/1 2 3 num1/ #%w和%W為字元數組分隔字元,元素必須用空格隔開
print arr1,"\n",arr2,"\n"
print arr1[1].class,"\n" #Fixnum類型
print arr2[1].class #String類型
五、散列表
鍵-值對的集合,應用廣泛
複製代碼 代碼如下:
hash1={1=>"first","second"=>2}
print hash1["second"]
六、符號
由於相同的字串在記憶體中有不同的拷貝,所以採用符號類型來節省記憶體,相同的符號在記憶體中只有一份拷貝,另外需注意字串和符號是完全不同的類型。
複製代碼 代碼如下:
print "string".object_id,"\n"#相同的字串具有不同的id
print "string".object_id,"\n"
print :string.object_id,"\n"#相同的符號具有相同的id
print :string.object_id,"\n"