在Ruby v> = 1.9的Rakefile中,默认任务支持的哈希语法是什么?

时间:2019-05-01 00:01:38

标签: ruby rubocop rakefile

在此Rakefile中,我要将默认任务设置为:test。

task :default => :test

Rubocop现在已经进入现场并声明了状态

Style/HashSyntax: Use the new Ruby 1.9 hash syntax.

太好了。我没有太多的Ruby背景知识,但是我确实知道一般的哈希语法是用来分配值并使其在以后易于获取的。

老实说,我不知道该如何传达信息,在这里您有一些任务,并且有一个“魔术”默认实例,我想分配:test

我尝试了一些排列,但似乎都没有用。我显然不是来自同一星球。

1 个答案:

答案 0 :(得分:1)

Rubocop建议这样做:

def process_list(l):
    dict = {}
    for item in l:
        key = item[0]
        if key in dict:
            if item[1] > dict[key][1]:
                dict[key] = item
        else:
            dict[key] = item
    return dict.values()

l = [[5117, 1556658900, u'29.3'], [5117, 1556659200, u'29.2'], [5117, 1556659500, u'29.0'],
 [67097, 1556658900, u'28.61'], [67097, 1556659200, u'28.5'], [67097, 1556659500, u'28.44'],
 [69370, 1556658900, u'30.0'], [69370, 1556659200, u'29.90'], [69370, 1556659500, u'29.94']]
print(process_list(l))

乍一看可能有点奇怪,但是您已经习惯了。

Rubocop还需要记住,Ruby 1.9在12年前于2007年发布。这不是“新”的。在2015年停止了对它的支持。显示了Rubocop为使Ruby代码变得更好而一直在努力。