2012-08-12 17 views
7

我已閱讀Ruby array的方法assocrassoc的文檔。我明白他們做了什麼。它們都在數組的數組上工作。 assoc返回其第一個元素等於提供的參數的數組,而rassoc的做法相同,但是對於第二個元素。Ruby數組的方法assoc和rassoc的目的是什麼?

我的問題是這些方法是什麼?這個功能非常具體。我猜這些方法的創建有一些原因。它是什麼?

回答

5

有幾個原因,但主要原因是數組可以像哈希一樣工作。我認爲,因爲哈希是未排序的,所以Ruby設計者需要一種以有序方式表示哈希的方式。我認爲有很多Enumerable方法在調用哈希時返回數組。

+1

在Lisp中找到等價函數;也許這就是Ruby得到它們的地方。 – echristopherson 2012-08-12 18:10:02

+0

從版本1.9開始,Ruby散列保證按插入順序迭代。 (但我同意你的看法)。 – johncip 2016-05-24 21:06:52

+0

@johncip:我的印象是,新的散列行爲不是普遍的(例如,依靠它可能會給JRuby帶來問題)。 – Linuxios 2016-05-24 22:22:00

相關問題