在一些代碼,我發現:單個變量名在Ruby中意味着什麼?
class Job
@@types = [:a, :b, :c, :d].reduce({}) do |acc, cmd|
acc[cmd] = cmd.to_s
acc
end
# ...
end
- 沒有什麼傳入
reduce
。那是什麼意思? - 有一個
acc
。那是什麼意思?
在一些代碼,我發現:單個變量名在Ruby中意味着什麼?
class Job
@@types = [:a, :b, :c, :d].reduce({}) do |acc, cmd|
acc[cmd] = cmd.to_s
acc
end
# ...
end
reduce
。那是什麼意思?acc
。那是什麼意思?reduce
被稱爲一個空哈希值。這意味着在第一次調用該塊時acc
的值將是{}
。
在Ruby中,一個函數中的最後一條語句是返回值,所以該塊返回acc
。
你可能需要讀什麼reduce
不會完全理解這些代碼。
- 沒有什麼傳入
reduce
。那是什麼意思?
這是不正確的。有一個位置參數{}
傳遞到reduce
以及一個塊。
但即使沒有獲得通過,有什麼大不了的?也沒有任何東西被傳入to_s
,但不知怎的,似乎並沒有打擾你。
- 有一個單一
acc
。那是什麼意思?
這意味着同樣的事情acc
上線前:取消引用變量。
的第一個參數({}
)是acc
初始參數,acc
是什麼時候會結束reduce
返回。
它只是變換數組的哈希,最後的結果是:
{:a=>"a", :b=>"b", :c=>"c", :d=>"d"}
_「沒有什麼傳入減少」 _ - 你這是什麼意思呢? '{}'被傳入'reduce',一個空的散列並不是什麼。 – Stefan
我認爲你需要花一點時間來學習Ruby的基本數據類型...'nil','FALSE','[]',' 「」','{}',......都是不同的,明確定義,紅寶石中的對象。 '{}'不是「無」,它是一個空的['Hash'](https://ruby-doc.org/core/Hash.html)。 –
什麼荒謬的代碼!不會通過我的代碼審查。 –