Ruby常用方法(3)

Ruby对象数组按属性排序
1 .Rails里,我们可以用sort_by方法对一个Ruby对象数组按照某个属性进行排序,如:
ruby 代码

User.find(:all).sort_by {|u| u.name.downcase}   

这等效于
ruby 代码

@users = User.find(:all)       
@users.sort! { |a,b| a.name.downcase < => b.name.downcase }    

sort!后面的!使得排序结果直接存入数组@users中,如果不想排序破坏@users数组,直接用sort即可。
Ruby字符串去空格

  1. lstrip : 去掉首空格
    rstrip : 去掉尾空格
    gsub : 去掉全部空格,不过要用到pattern匹配
    eg:
s1 = " Test  whitespace"
s2 = " hello  Ruby  Rails  "
s3 = "trailing  "
puts s1.lstrip+s3 # show  lstrip remove leading  whitespace
puts s2.rstrip+s3 # show  rstrip  remove trail whitespace
puts s1.strip + s2.strip + s3 # show strip remove leading and trail whitespace
puts s2.gsub(/\s+/,'')puts s2.gsub(' ','')
puts s2.gsub!(' ','')puts s2.gsub(//,'') # four methods show remove all whitespace

Ruby sort

sort和sort!函数,默认都使用 <=>比较,他们的区别在于:
sort! 可能会改变原先的数组,所以加个感叹号提醒
sort 返回的是新数组,没对原先的数组进行修改
在ruby的SDK里,能看到很多加了感叹号的函数,都意味着对函数操作的对象进行了状态更改。

你可能感兴趣的:(Ruby常用方法(3))