jjzjj

indexing

全部标签

ruby - each_with_index_do 索引从 1 开始

我在Rails应用程序的View上使用ruby​​迭代器,如下所示:...我想加上1..而不仅仅是说:@document.data会得到让上面的索引从1开始的技巧。但是,遗憾的是,上面的代码索引仍然是0到data.length(实际上是-1)。那么我做错了什么,我需要索引等于1-data.length...不知道如何设置迭代器来执行此操作。 最佳答案 除非你使用像1.8这样的旧Ruby(我认为这是在1.9中添加的,但我不确定),你可以使用each.with_index(1)来获得1-基于枚举器:在你的情况下它会是这样的:...

ruby - 我可以或应该通过 ruby​​ 中的 object_id 属性找到一个对象吗?

当我创建一个新对象时,假设o=Object.new这个对象有一个id,o.object_id#=>########我还使用Object类制作了其他几个对象。使用object_id属性让ruby​​找到对象“o”的最佳方法是什么?我在想类似的事情search_id=o.object_idsearch_result=Object.find(search_id)其中“search_results”是对应于“search_id”的对象。此外,我肯定会欣赏一种完全不同的方法来索引对象并通过guid或其他方式检索它们。非常感谢!哈,好吧,我想我真的只需要在数据库的上下文中考虑这个问题,只需使用My

ruby - 如何在 ruby​​ 中编写负循环,如 for(i=index; i >= 0; i --)

如何在Ruby中编写一个倒计时循环,类似于以下C风格的for循环?for(i=25;i>=0;i--){printi;} 最佳答案 在Ruby中有很多方法可以执行递减循环:第一种方式:foriin(10).downto(0)putsiend第二种方式:(10).downto(0)do|i|putsiend第三种方式:i=10;untili 关于ruby-如何在ruby​​中编写负循环,如for(i=index;i>=0;i--),我们在StackOverflow上找到一个类似的问题:

Ruby 数组 each_slice_with_index?

如果我有arr=[1,2,3,4]我知道我可以执行以下操作...>arr.each_slice(2){|a,b|puts"#{a},#{b}"}1,23,4...和...>arr.each_with_index{|x,i|puts"#{i}-#{x}"}0-11-22-33-4...但是是否有内置的方法来做到这一点?>arr.each_slice_with_index(2){|i,a,b|puts"#{i}-#{a},#{b}"}0-1,22-3,4我知道我可以构建自己的并将其粘贴到数组方法中。只是想看看是否有内置函数可以执行此操作。 最佳答案

ruby-on-rails - Gem.source_index 已弃用,请使用 Specification。我应该重新安装 Gem 还是 Rails?

我正在Ubuntu11上学习RoR。当我尝试生成应用程序时收到以下消息。我是不是安装错了什么?$railsgeneratecontrollerPageshomecontactNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/usr/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/shared_helpers.rb:3.NOTE:Gem.source_indexi

ruby - 在 Ruby 中,有没有办法使用类似 hash.each_with_index do |[k,v], i| 的方法?

否则就需要h={:a=>1,:b=>2.2}h.each_with_indexdo|pair,i|k=pair[0];v=pair[1]pk,v,iend并以这种方式设置k和v似乎有点笨拙。它可以更简单还是类似h.each_with_indexdo|[k,v],i|? 最佳答案 事实上,是的!使用括号:h={:a=>1,:b=>2.2}h.each_with_indexdo|(k,v),i|pk,v,iend 关于ruby-在Ruby中,有没有办法使用类似hash.each_with_i

ruby - 在 Ruby 中,获取数组中最大值索引的最简洁方法是什么?

如果a是数组,我想要a.index(a.max),但更像Ruby。这应该是显而易见的,但我在so和其他地方找不到答案。显然,我是Ruby的新手。 最佳答案 对于Ruby1.8.7或更高版本:a.each_with_index.max[1]它进行一次迭代。不完全是最语义化的东西,但如果你发现自己经常这样做,我会把它包装在index_of_max方法中。 关于ruby-在Ruby中,获取数组中最大值索引的最简洁方法是什么?,我们在StackOverflow上找到一个类似的问题:

ruby - 如何在 Ruby 中找到字符串中字符的索引?

如果我有str='abcdefg',我如何使用Ruby在这个字符串中找到c的索引? 最佳答案 index(substring[,offset])→fixnumornilindex(regexp[,offset])→fixnumornil返回给定子字符串或模式(regexp)在str中第一次出现的索引。如果找不到则返回nil。如果存在第二个参数,则它指定字符串中开始搜索的位置。"hello".index('e')#=>1"hello".index('lo')#=>3"hello".index('a')#=>nil"hello".ind

ruby - Ruby 中 each.with_index 和 each_with_index 的区别?

我真的很困惑each.with_index和each_with_index之间的区别。它们有不同的类型,但在实践中似乎是相同的。 最佳答案 with_index方法采用可选参数来偏移起始索引。each_with_index做同样的事情,但没有可选的起始索引。例如:[:foo,:bar,:baz].each.with_index(2)do|value,index|puts"#{index}:#{value}"end[:foo,:bar,:baz].each_with_indexdo|value,index|puts"#{index}:

ruby each_with_index 偏移量

我可以在each_with_index循环迭代器中定义索引的偏移量吗?我的直接尝试失败了:some_array.each_with_index{|item,index=1|some_func(item,index)}编辑:澄清:我不想要数组偏移我希望each_with_index中的索引不是从0开始,而是例如1. 最佳答案 实际上,Enumerator#with_index接收偏移量作为可选参数:[:foo,:bar,:baz].to_enum.with_index(1).eachdo|elem,i|puts"#{i}:#{elem