是否可以清楚地標識一類變量?找出哈希和數組之間的變量類別和區別
類似:
@users.who_r_u? #=>Class (some information)
@packs.who_r_u? #=> Array (some information)
等
有人可以提供類,散列,數組,與之關聯的數組等之間的差異清晰簡短的說明?
是否可以清楚地標識一類變量?找出哈希和數組之間的變量類別和區別
類似:
@users.who_r_u? #=>Class (some information)
@packs.who_r_u? #=> Array (some information)
等
有人可以提供類,散列,數組,與之關聯的數組等之間的差異清晰簡短的說明?
您可以使用:
@users.class
測試它在IRB:
1.9.3p0 :001 > 1.class
=> Fixnum
1.9.3p0 :002 > "1".class
=> String
1.9.3p0 :003 > [1].class
=> Array
1.9.3p0 :004 > {:a => 1}.class
=> Hash
1.9.3p0 :005 > (1..10).class
=> Range
或者:
1.9.3p0 :010 > class User
1.9.3p0 :011?> end
=> nil
1.9.3p0 :012 > @user = User.new
=> #<User:0x0000010111bfc8>
1.9.3p0 :013 > @user.class
=> User
這些只是快速IRB的例子,希望這足以看出使用紅寶石中的.class。
這正是我想要的!非常感謝你! – antsav 2012-01-06 18:12:55
您也可以使用kind_of?
來測試它的接收器是類,數組還是其他任何東西。
@users.kind_of?(Array) # => true
Class
和Hash
之間的區別?他們太不同,甚至沒有提供正常答案。 Hash
基本上是一個具有唯一鍵的數組,每個鍵都有其相關的值。這就是爲什麼它也被稱爲關聯數組。
下面是一些解釋:
array = [1,2,3,4]
array[0] # => 1
array[-1] # => 4
array[0..2] # => [1,2,3]
array.size # => 4
簽出更多的Array
方法在這裏:http://ruby-doc.org/core-1.9.3/Array.html
hash = {:foo => 1, :bar => 34, :baz => 22}
hash[:foo] # => 1
hash[:bar] # => 34
hash.keys # => [:baz,:foo,:bar]
hash.values # => [34,22,1]
hash.merge :foo => 3921
hash # => {:bar => 34,:foo => 3921,:baz => 22 }
Hash
從來沒有讓你添加到它的elments的順序,它只是保留了獨特的鍵,所以你可以很容易地檢索價值。
但是,如果你這樣做:
hash.merge "foo" => 12
你會得到
hash # => {:bar => 34, baz => 22, "foo" => 12, :foo => 2}
它創造新的鍵值對,因爲:foo.eql? "foo"
回報false
。
更多Hash
方法,看看這個:http://www.ruby-doc.org/core-1.9.3/Hash.html
Class
對象是有點太複雜總之解釋,但如果你想了解更多相關信息,reffer一些在線教程。
請記住,API是你的朋友。
您可以找到這些方法的Ruby文檔中http://ruby-doc.org/core-1.9.3/Object.html
@user.class => User
@user.is_a?(User) => true
@user.kind_of?(User) => true
發現的有用:<%= debug @users %>
還是要找到他們之間的差異清晰簡單的解釋。 thanx – antsav 2012-01-06 12:56:21
哈希和關聯數組是相同的東西。類是包含一組方法的對象類型。哈希的類是哈希和數組是數組。 – 2012-01-06 13:16:27