我知道所有@@logHash
鍵的第一個值包含IP地址。我想迭代那個位置來爲一個新的散列創建密鑰,如果它不是一個重複的密鑰。如何迭代ruby散列中的特定值位置?
這裏是我有什麼,但我知道這不可能是正確的...
def ipaddresses(@@logHash)
@@ipHash = Hash.new
@@logHash[1].each_value do | value |
if @@ipHash.has_key?(value)
@@ipHash[value] += "#"
else
@@ipHash[value] = "#"
end
puts ""
@@ipHash.sort.each { |key,value| puts "The frequency of #{key} is |#{value}"}
end
end
任何幫助表示感謝,謝謝!
麗莎
我對ruby非常新鮮,但這是一個類中多個方法之間的方法,我希望這些哈希用於多個方法,這就是爲什麼他們是類變量。這是不正確的? – user1825643
所以這個「logHash [1] .each_value do | value |」確實能夠迭代logHash中所有鍵的第一個值?這是我最關心的問題。 – user1825643
您應該使用'@'-type實例變量在類的單個實例之間共享它們,而不是在類的* all *實例之間共享的@@'。如果你犯了使用'@@'變量的錯誤,你會看到數據從一個實例流到另一個實例。無論哪種情況,方法的參數都沒有任何類型的「@」前綴。 – tadman