【发布时间】:2017-06-02 13:20:02
【问题描述】:
我想创建一个哈希,另一方面,它用字母 'A'..'Z' 和 "" 初始化。
abcliste = {}
('A'..'Z').to_a.each { |letter| abcliste[letter] = ""}
print abcliste # => {"A"=>"", "B"=>"", "C"=>"", ... , "Z"=>""}
但是,如果我使用一个类,同样的代码,我会得到一个数组["A", "B", "C", "D", "E", ... , "Z"]:
class Abcliste
def initialize
@abcliste = {}
@abcliste = ('A'..'Z').to_a.each { |letter| @abcliste.store(letter, "") }
print @abcliste # => ["A", "B", "C", "D", "E", ... , "Z"]
end
end
a = Abcliste.new # => ["A", "B", "C", "D", "E", ... , "Z"]
- 为什么会这样?
- 如何编写一个类,以便从 ('A'..'Z') 生成哈希
【问题讨论】:
-
" 如果我使用一个类,使用 相同的代码" – 这里有一个提示:它不是相同的代码。比较差异,你会发现错误。