草庐IT

数组方法

全部标签

ruby - 将 ruby​​ 数组转换为连续对数组

将ruby​​数组转换为其元素的连续对数组的最简单方法是什么?我的意思是:x=[:a,:b,:c,:d]预期结果:y#=>[[:a,:b],[:c,:d]] 最佳答案 使用Enumerable#each_slice:y=x.each_slice(2).to_a#=>[[:a,:b],[:c,:d]][0,1,2,3,4,5].each_slice(2).to_a#=>[[0,1],[2,3],[4,5]] 关于ruby-将ruby​​数组转换为连续对数组,我们在StackOverflow

ruby-on-rails - 如何将字符串转换为类方法?

这是在Rails/Ruby中将字符串转换为类的方法:p="Post"Kernel.const_get(p)eval(p)p.constantize但是,如果我从数组/事件记录对象中检索方法,如:Post.description但也有可能是Post.anything其中anything是一个字符串,如anything="description"。这很有用,因为我想重构一个非常大的类并减少代码行和重复。我怎样才能让它发挥作用? 最佳答案 Post.send(anything) 关于ruby-

ruby - 将整个文本文件作为单个字符串读取的合理方法是什么?

我相信这很容易;我无法立即从Google找到答案。我知道我可以做到这一点(对吧?):text=""File.open(path).each_linedo|line|text+=lineend#Dosomethingwithtext但这似乎有点过分,不是吗?或者这是人们在Ruby中的做法吗? 最佳答案 IO.read()正是您要找的。File是IO的子类,所以你也可以使用:text=File.read(path)没有比这更直观的了。 关于ruby-将整个文本文件作为单个字符串读取的合理方法

ruby - 将 CSV 文件转换为哈希数组

我有一个csv文件,一些曲棍球统计数据,例如:09.09.2008,1,HCVitkoviceSteel,BKMladaBoleslav,1:0(PP)09.09.2008,1,HCLasselsbergerPlzen,RIOKNAZLIN,6:209.09.2008,1,HCLitvinov,HCSpartaPraha,3:5我想将它们保存在一个哈希数组中。我没有任何header,我想为每个值添加键,例如"time"=>"09.09.2008"等等。每行都应该像arr[i]一样可访问,每个值都应该像arr[i]["time"]一样可访问。我更喜欢CSV类而不是FasterCSV或sp

ruby - 覆盖子类中的 ruby​​ 常量,以便继承的方法使用新常量而不是旧常量?

在Ruby中,有没有一种方法可以“覆盖”子类中的常量,从而调用从子类继承的方法导致该方法使用新常量而不是旧常量?例如:classSuperClassCONST="Hello,world!"defself.say_helloCONSTendendclassSubClass"Hello,world!"SubClass.say_hello#=>"Hello,Bob!"如果没有,是否有办法改为执行类似的操作?classSuperClassCONST="Hello,world!"defself.say_helloCONSTendendSubClass=SuperClass.cloneSubCla

ruby - 将方法应用于数组/可枚举中的每个元素

这是我的数组:array=[:one,:two,:three]我想将to_s方法应用于我的所有数组元素以获取array=['one','two','three']。我该怎么做(将可枚举的每个元素转换为其他元素)? 最佳答案 这会起作用:array.map!(&:to_s) 关于ruby-将方法应用于数组/可枚举中的每个元素,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/64969

ruby-on-rails - 如何获取包含表的列名的数组

我需要一个包含表的列名的数组关于如何使用rails3.0.0rc做到这一点有什么想法吗? 最佳答案 假设您有一个Post模型:Post.column_names#orPost.columns.map{|column|column.name}它将返回一个数组,其中包含表“posts”的列名。 关于ruby-on-rails-如何获取包含表的列名的数组,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu

Ruby 在调用方法之前检查是否为 nil

我在Ruby中有一个字符串,我在其上调用strip方法来删​​除前导和尾随空格。例如s="12345"s.strip但是,如果字符串为emptynil,我会收到以下错误。NoMethodError:undefinedmethod`strip'fornil:NilClass我使用的是Ruby1.9,那么在调用strip方法之前检查值是否为nil的最简单方法是什么?更新:我在数组中的一个元素上试过这个但遇到了同样的问题:data[2][1][6].nil??data[2][1][6]:data[2][1][6].split(":")[1].strip 最佳答案

ruby - 根据另一个数组的元素对一个数组进行排序

我有一个id数组a1=[1,2,3,4,5]我还有另一个ID随机排列的对象数组a2=[(obj_with_id_5),(obj_with_id_2),(obj_with_id_1),(obj_with_id_3),(obj_with_id_4)]现在我需要根据a1中id的顺序对a2进行排序。所以a2现在应该变成:[(obj_with_id_1),(id_2),(id_3),(id_4),(id_5)]a1可能是[3,2,5,4,1]或任何顺序,但a2应对应于a1中id的顺序。我喜欢这样:a1.each_with_indexdo|id,idx|found_idx=a1.find_inde

ruby-on-rails - 在 rake 任务期间关闭观察者的简单方法?

我在我的应用中使用了restful_authentication。我正在使用rake任务创建一组默认用户,但每次我运行任务时都会发送一封激活电子邮件,因为观察者与我的用户模型相关联。我在创建用户时设置了激活字段,因此不需要激活。有人知道在运行rake任务时绕过观察者的简单方法,这样当我保存用户时就不会发送电子邮件吗?谢谢。 最佳答案 Rails3.1终于为此提供了API:http://api.rubyonrails.org/v3.1.0/classes/ActiveModel/ObserverArray.html#method-i-