在ruby中,单个变量名意味着什么?
在一些代码中,我发现:在ruby中,单个变量名意味着什么?,ruby,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所做的工作才
class Job
@@types = [:a, :b, :c, :d].reduce({}) do |acc, cmd|
acc[cmd] = cmd.to_s
acc
end
# ...
end
reduce
。这是什么意思acc
。这是什么意思reduce
使用空哈希调用。这意味着在对块的第一次调用中,acc
的值将是{}
acc
reduce
所做的工作才能准确理解此代码
reduce
。这是什么意思{}
传递到reduce
以及一个块中
但即使没有通过,有什么大不了的?也没有任何东西被传递到到_
中,但不知何故,这似乎并不困扰您
acc
。这是什么意思acc
相同:取消引用变量。读取
第一个参数({}
)是acc
的初始参数,acc
是reduce
完成时返回的参数
它只是将数组转换为哈希,最终结果是:
{:a=>"a", :b=>"b", :c=>"c", :d=>"d"}
“没有任何东西传递到reduce中”——你这是什么意思<代码>{}正在被传递到
reduce
中,空哈希也不是什么。我认为您需要花一点时间学习ruby中的基本数据类型<代码>零,假
,[]
,“
,{}
。。。在ruby中都是不同的、定义良好的对象<代码>{}不是“无”,它是一个空的。多么可笑的代码!不会通过我的代码审查。