如何用最少的代码创建大量哈希

时间:2019-02-05 06:28:57

标签: ruby loops hash

我需要使用以下格式创建一个较大的哈希散列,其中速度和总数是局部变量:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="red" class="circle"></div>

我有一个完整的哈希模板,该模板很大,使代码更难阅读。在构建#include<stdio.h> enum tag{ a, b}; struct tag1 { int temp; }var; int main(){ int a=9; printf("%d %d\n",a,b); printf("%d\n",var.temp); } 时,是否有一种方法可以遍历每个子哈希,然后将所需的变量传递到子哈希的每个迭代中?

1 个答案:

答案 0 :(得分:1)

FWIW,以下代码应按照您的要求执行。不过,所有说您在做的评论都是错误的。

我仅出于教育目的发布摘要。

b = binding
hash =
  (?a..?i).map do |key|
    [
      key.to_sym,
      (1..2).map do |i|
        [
          :"category_#{i}",
          {
            length: b.local_variable_get(key)["category_#{i}"].length,
            amount: b.local_variable_get("category_#{i}_#{key}_total"),
            speed: b.local_variable_get("category_#{i}_#{key}_speed")
          }
        ]
      end.to_h
    ]
  end.to_h

该代码未经测试,但应该可以立即使用。