草庐IT

array_name

全部标签

arrays - Set in ruby​​ 的优点

Set的主要优点似乎是保持独特的元素。但这可以在Array中轻松实现,array=[2,3,4]array|[2,5,6]#=>[2,3,4,5,6]我遇到的唯一明显特征(可能适用于少数用例)是,set1=[1,2,3].to_setset2=[2,1,3].to_setset1==set2#=>true[1,2,3]==[2,1,3]#=>false既然Array有各种相关的功能和操作,我什么时候以及为什么要使用Set?有很多比较Array和Set的链接,但我还没有遇到Set的重要应用。 最佳答案 当然,无论您可以使用Set做什么

arrays - Ruby 按索引选择

我正在尝试从数组中选择元素:arr=['a','b','c','d','e','f','g','h','i','j','k','l','m','n']其指数是斐波那契数。我想要结果:['a','b','c','d','f','i','n']我的代码返回元素和索引。defis_fibonacci?(i,x=1,y=0)returntrueifi==x||i==0returnfalseifx>iis_fibonacci?(i,x+y,x)endarr.each_with_index.selectdo|val,index|is_fibonacci?(index)end此代码返回:[["a",

arrays - 组合两个数组以在ruby中创建一个二维数组

a=[1,2,3]b=[4,5,6]我如何将两个数组组合成一个二维数组?:[[1,4],[2,5],[3,6]] 最佳答案 尝试Array#zipa.zip(b)=>[[1,4],[2,5],[3,6]] 关于arrays-组合两个数组以在ruby中创建一个二维数组,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12011294/

arrays - Ruby 中哪个更快, `arr += [x]` 或 `arr << x`

直觉上,后者应该比前者快。然而,当我看到基准测试结果时,我感到非常惊讶:require'benchmark/ips'b=(0..20).to_a;y=21;Benchmark.ipsdo|x|x.report('结果是:Calculating-------------------------------------然而,当我的一位同事独立创建了自己的基准时,结果却恰恰相反:Benchmark.ipsdo|x|x.report('push'){@a=(0..20).to_a;@a.push(21)}x.report('结果:Calculating---------------------

ruby-on-rails - rails : dynamically define class method based on parent class name within module/concern

我想根据包含此Mixin的类名在Mixin中动态生成一个类方法。这是我当前的代码:moduleMyModuleextendActiveSupport::Concern#defsome_methods#...#endmoduleClassMethods#HereiswhereI'mstuck...define_method"#{self.name.downcase}_status"do#dosomething...endendendclassMyClass但这给了我以下方法名称:MyClass.mymodule::classmethods_status在方法定义中获取基类名称是可行的(s

arrays - Enumerable 的 group_by 是否保留 Enumerable 的顺序?

是否Enumerable#group_by保留每个值内的原始顺序?当我得到这个时:[1,2,3,4,5].group_by{|i|i%2}#=>{1=>[1,3,5],0=>[2,4]}是否保证,例如,数组[1,3,5]包含此顺序的元素,而不是,例如[3,1,5]?有没有关于这一点的说明?我没有提到键1和0之间的顺序。那是一个不同的问题。 最佳答案 是的,Enumerable#group_by保留输入顺序。这是该方法在MRI中的实现,来自https://github.com/ruby/ruby/blob/trunk/enum.c:s

ruby-on-rails - 知道@vendor.name 后如何使 Ruby on Rails 中的 URL 对 SEO 友好?

我的应用程序在RoR中我有一个名为showsummary的操作/View,其中ID已传递到URL,并且Controller使用它来实例化@vendor,其中@vendor.name是公司的名称。我希望URL是showsummary/1/而不是在URL中包含/vendor-name。我该怎么做? 最佳答案 所有这些解决方案都使用find_by_name,这肯定需要在该列上有一个索引并且要求它们是唯一的。我们使用的一个更好的解决方案是在供应商名称前加上其ID,但牺牲了一点美观。这意味着您不必在名称列上有索引和/或要求唯一性。供应商.rb

arrays - Ruby - 测试每个数组元素,得到一个结果

我想要一个返回true/false的单行代码,它测试数组中的每个元素是否为整数。因此,如果数组中的任何元素不是Integer,它应该返回false,否则返回true。这是我的尝试:>>([2,1,4].map{|x|(x.is_a?Integer)}).reduce{|x,result|xandresult}=>true>>([2,"a",4].map{|x|(x.is_a?Integer)}).reduce{|x,result|xandresult}=>false还有其他进一步提炼它的想法吗? 最佳答案 array.all?{|x

ruby - 为什么 Array.to_s 返回括号?

对于一个数组,当我输入:putsarray[0]==>text然而当我打字时putsarray[0].to_s==>["text"]为什么是括号和引号?我错过了什么?附录:我的代码如下所示page=open(url){|f|f.read}page_array=page.scan(/regex/)#pullspartialurlsintoanarraypartial_url=page_array[0].to_sfull_url=base_url+partial_url#addseachpartialurltoaconsistentbase_urlputsfull_url我得到的是这样的:

ruby - 是 &method( :method_name) idiom bad for performance in Ruby?

我最近遇到了&method(:method_name)语法。(这使用Object#method方法-RDoclink)例如,[5,7,8,1].each(&method(:puts))相当于[5,7,8,1].each{|number|putsnumber}在Ruby的各种实现中,与前者相比,后者是否存在性能损失?如果是,实现者是否正在努力提高其性能? 最佳答案 是的,这似乎对性能不利。deftimestart=Time.nowyield"%.6f"%(Time.now-start)enddefdo_nothing(arg)endR