Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ruby中,单个变量名意味着什么?_Ruby - Fatal编程技术网

在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
    的值将是
    {}

  • 在Ruby中,函数中的最后一条语句是返回值,因此块返回
    acc

  • 您可能需要阅读
    reduce
    所做的工作才能准确理解此代码

  • 没有传递到
    reduce
    。这是什么意思
  • 那不是真的。有一个位置参数
    {}
    传递到
    reduce
    以及一个块中

    但即使没有通过,有什么大不了的?也没有任何东西被传递到
    到_
    中,但不知何故,这似乎并不困扰您

  • 只有一个
    acc
    。这是什么意思
  • 它的意思与前一行的
    acc
    相同:取消引用变量。

    读取

    第一个参数(
    {}
    )是
    acc
    的初始参数,
    acc
    reduce
    完成时返回的参数

    它只是将数组转换为哈希,最终结果是:

    {:a=>"a", :b=>"b", :c=>"c", :d=>"d"}
    

    “没有任何东西传递到reduce中”——你这是什么意思<代码>{}正在被传递到
    reduce
    中,空哈希也不是什么。我认为您需要花一点时间学习ruby中的基本数据类型<代码>零,
    []
    {}
    。。。在ruby中都是不同的、定义良好的对象<代码>{}不是“无”,它是一个空的。多么可笑的代码!不会通过我的代码审查。