【发布时间】:2015-01-06 05:22:00
【问题描述】:
今天在 Ruby 中使用哈希时,我在排序和访问它时不断遇到一些复杂问题。在我看来,我只需要一个简单的 array.pop 方法来做我需要的事情。由于我刚刚了解了类定义,所以我有了一个想法,想看看是否有理由不这样做。
hash = {"a" => 1, "b" => 2, "c" => 3}
如果我创建一个包含数据值的对象数组,我是否可以不做同样的事情,但让它对更多排序方法和可扩展数据开放? 像这样的
class Key
attr_accessor :value
def initialize (value)
@value = value
end
end
然后我会创建一个 Key 对象数组。然后我可以比散列更容易地对数组进行排序,并且仍然从键内部获取数据。如果我发现需要将几位数据保存在一起并进行排序,我认为这可以为更多可扩展的代码保持开放。
这是不好的做法吗?你能看到会咬我的情况吗?我用锤子解决问题是因为我刚得到一个锤子吗?
【问题讨论】:
-
你能再解释一下..你想用你的哈希做什么?
-
我看到一个似乎需要更多信息的问题已经发布了三个答案。套用@RahulSambari,你想用你的哈希做什么?
-
在本练习中,我尝试按值排序,然后从哈希中删除最高值,破坏性地将该键值对返回到变量中。在数组中,就像 .pop 方法一样简单。有没有类似调用哈希的东西?
-
我也在做一个思想实验。我正在考虑一种数据结构,我可以在其中调用一个对象并返回与该键关联的几条数据之一。我知道我可以在值位置使用键值对的散列构建嵌入式散列,但我正在考虑将所有这些值存储在一个对象中,这样可以提供更具可读性的代码,并且我认为构建逻辑的一些有趣选项成数据结构。也就是说,我还是个新手,所以让我知道我是否有可能破坏一切。
标签: ruby arrays class sorting hash