草庐IT

ruby - 在 Ruby 数组中收集重复项的最快/单行方法?

像这样转换数组的最快/单行方法是什么:[1,1,1,1,2,2,3,5,5,5,8,13,21,21,21]...进入像这样的对象数组:[{1=>4},{2=>2},{3=>1},{5=>3},{8=>1},{13=>1},{21=>3}] 最佳答案 要获得所需的格式,您可以附加一个调用以映射到您的解决方案:array.inject({}){|h,v|h[v]||=0;h[v]+=1;h}.map{|k,v|{k=>v}}虽然它仍然是单行的,但它开始变得凌乱了。 关于ruby-在Ruby

ruby - 在散列单行中加入公共(public)键

我有这个数组对:[{"a"=>"1"},{"b"=>"2"},{"a"=>"3"},{"b"=>"4"},{"a"=>"5"}]我想要一种方法来将具有多个值的公共(public)键合并到:[{"a"=>["1","3","5"]},{"b"=>["2","4"]}] 最佳答案 根据Marc-Andre的建议进行了改进。array=[{"a"=>"1"},{"b"=>"2"},{"a"=>"3"},{"b"=>"4"},{"a"=>"5"}]array.group_by(&:keys).map{|k,v|{k.first=>v.fla

用于捕获正则表达式匹配项的 Ruby 单行代码

在Perl中,我使用以下一行语句通过正则表达式从字符串中提取匹配项并分配它们。这个找到一个匹配项并将其分配给一个字符串:my$string="thequickbrownfoxjumpsoverthelazydog.";my$extractString=($string=~m{fox(.*?)dog})[0];结果:$extractString=='jumpsoverthelazy'这个从多个匹配项创建一个数组:my$string="thequickbrownfoxjumpsoverthelazydog.";my@extractArray=$string=~m{the(.*?)fox.*

ruby - 在 Ruby 数组中(按键)删除重复项的最快/单行方法?

根据特定的键:值或方法返回的结果,删除对象数组中重复项的最快/单行方法是什么?例如,我有20个名称相同的XML元素节点,但它们具有不同的“文本”值,其中一些是重复的。我想通过说“ifelement.text==previous_element.text,删除它”来删除重复项。我如何用最短的代码在Ruby中做到这一点?我已经看到如何为简单的字符串/整数值执行此操作,但不是为对象执行此操作。 最佳答案 这是标准的散列方式。注意||=运算符的使用,这是一种更方便的(a||=b)方式来编写a=bunlessa.array.inject({}

ruby - 如何使用大括号在 Ruby 中执行单行 while 循环

我正在尝试使用花括号在ruby​​中做一个简单的单行while循环。我在以下格式中取得了成功:whilex这作为一个衬垫就足够了,但我不喜欢在一个衬垫中使用doend。我想做类似的事情:whilex这可以做到吗? 最佳答案 这个怎么样:x=0x+=1whilex5 关于ruby-如何使用大括号在Ruby中执行单行while循环,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/357

ruby - ruby 中的单行多重赋值

在一行中分配一个空数组好吗?arun@arun:~$irbirb(main):001:0>a=b=c=[]=>[]irb(main):002:0>b["one"]irb(main):003:0>pa["one"]=>nil因为我希望'a'是[]但它显示b的值表示“一”。这是预期的吗?我也尝试使用字符串和整数对象。irb(main):004:0>d=e=f=0=>0irb(main):005:0>f=6=>6irb(main):006:0>pd0=>nilirb(main):007:0>irb(main):007:0>q=w=e=r="jak"=>"jak"irb(main):008:0

ruby - 在 Ruby 中要求目录中所有文件的最干净/单行方法?

在创建gem的时候,我经常有这样的目录结构:|--lib|--helpers.rb`--helpers|--helper_a.rb`--helper_b.rb在helpers.rb中,我只是require-inghelpers目录中的文件。但我必须做这样的事情:$:.push(File.dirname(__FILE__)+'/helpers')require'helper_a'require'helper_b'有没有一种方法可以让我永远不必添加一行?我只是很快想到了这个:dir=File.join(File.dirname(__FILE__),"helpers")Dir.entries

ruby-on-rails - 使用 HAML 生成单行注释?

我试图在HTML文件末尾的一行中生成注释:我试过了/generatedby#{@server_name}但这会输出超过3行-我试过了/generatedby#{@server_name}但这不会评估@server_namevar-有什么想法吗? 最佳答案 正如您可以在需要时返回原始HTML输出一样,您也可以插入原始HTML注释,甚至可以进行插值。这个模板:-@foo=42#test1/Hello#{@foo}#test2产生这个输出:使用Hamlv3.1.4(SeparatedSally)测试

ruby - 在 Ruby 中列出 attr_accessor 的最快/单行方法?

列出使用attr_accessor定义的所有方法的最短的单行方法是什么?我想这样做,如果我有一个类MyBaseClass,任何扩展它的东西,我都可以获得子类中定义的attr_accessor。像这样:classMyBaseClass[id,title,body]如何只显示attr_reader和attr_writer定义? 最佳答案 将属性提取到数组中,将它们分配给constant,然后splat它们进入attr_accessor。classSubClass现在您可以通过常量访问它们:putsSubClass.ATTRS#=>[:i

ruby - 有 ruby 单行 "return if x"吗?

有很多地方需要补充ifthis_flagreturnend可以用ruby​​在一行中完成吗? 最佳答案 istherearubyone-line“returnifx”?是的:returnvalueifcondition我喜欢Ruby:-) 关于ruby-有ruby单行"returnifx"吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5436034/