rails 对 ruby 的扩展

rails ruby 的扩展

1 对象扩展

railsruby 的扩展 将 ruby 对象转化成 json 格式 :

对象为: new (“ rails “, [10,10,9,1]#=> 对象 .to_json 对象变成了 ["rails",[10,10,9,1]]

2 空值检测扩展

检查对象是否为空:对象 .blank? 空则返回 false 不空则返回 true

3 枚举数组扩展

集合 .group_by|post| post.author_id }对集合进行分组。返回一个 hash ,键为对象的 author_id, 每个键所对应的值为 author_id 对应的数组

集合 .sum{|order| order.value} 对集合中每一个对象的 value 值进行加和

4 字符串扩展

1 )连接字符串

Jack”+”wang” #=>”jackwang”

2 )字符串乘法

“happy”*3 #=>”happyhappyhappy”

3 )字符串比较 ( 实际是对字符 ASCII 值进行比较 )

“x”>”y” #=>false

“y”>”x” #=>true

4 )求字符串 ASCII 值用 ?字符串

?x #=>#120

?y #=>#121

5 )数字代表的字符

120.chr #=>x

121.chr #=>y

6 )需要替换的表达式放入 # {}

x=5 y=6 puts “#{x}+#{y}” #=>5+6

7 )字符串中插入字符串变量

man=”jack”

“#{man} is handsome” #=>jake is handsome

8 )字符串常用方法

“jack”.capitalize #=>Jack

“Jack”.downcase #=>jack

“Jack”.chop #=>jac 去掉最后一个字母

“Jack”.hash #=>540559965

“Jack”.next #=>jacl 最后一字符 ASCII1

“Jack”.reverse #=>kcaJ 将字母倒序输出

“Jack”.sum #=>337 每个字母的 ASCII 值相加

“Jack”.swapcase #=>jACK 字母大小写取反

“Jack”.upcase #=>JACK 将字母全部转换成大写

“jack”[0,2] #=>ja

“jack”.slice(0,2) #=>ja

“hello”.count(“l”) #=>2

9 )替换字符串的某一范围内的值

a=”hello world”

a[1,3]=”jack” #=>a 的值为 Hjacko world

10 )删除字符串

“hello”.delete(“l”,”lo”) #=>he

11 )判断空

a=””

a.empty? #=>true

b=”jack”

b.empty? #=>false

12 )以 replace 来替换字符串中所有与 pattern 相匹配的部分

“hello”.gsub(/[aeiou]/, ‘*’) #=>h*ll*

13 )用 replace 来替换首次匹配 pattern 的部分

“hello”.sub(/[aeiou]/, ‘*’) #=>h*llo

14 )判断包含指定字符串 ( 指定的是字符串,若下例中指定 ”ho” 则也不成 )

“hello”.include? “lo” #=>true

“hello”.include? “a” #=>false

15 )返回搜索到指定字符串左侧位置

“hello”.index(‘lo’) #=>3

“hello”.index(‘a’) #=>nil

16 )对字符串中各行迭代操作,对各个字节进行迭代操作

“Hi\nRuby”.each {|s| puts s} #=>Hi Ruby

“Hi\nRuby”.each_line {|s| puts s} #=>Hi Ruby

“Hi\nRuby”.each_byte {|s| puts s} #=>72 105 10 82 117 98 121

17 )拆分字符串

“mellow yellow”.split(“ello”) #=>m,w y,w

18 )压缩重复的字符串

“yellow moon”.squeeze #=>yelow mon

19 )删除头部和尾部的所有空白字符。空白字符是指 ””t”r”n”f”v”

“ hello ”.strip #=>hello

20 )字符串的遍历

字符串对象 .at(2) 选择字符串中第 3 个字符

字符串对象 .from(8) 选择第 8 位开始以后的字符串

字符串对象 .to(8) 选择第 8 位字符串之前的字符串

字符串对象 .first 选择字符串中第一位字符
字符串对象 .first(3) 选择前 3 位字符

字符串对象 .last 选择最后一个字符

字符串对象 .last(3) 选择后 3 个字符串

字符串对象 .starts_with?(“no”) 是否以 no 开头 返回 truefalse

字符串对象 .ends_with?(“me”) 是否以 me 结尾 返回 truefalse

字符串对象 .each_char {|ch| …..} 遍历字符串中每一个字符

字符串对象 .pluralize 将字符串转化成复数

字符串对象 .singularize 将字符串转化成单数

5 数值的扩展

6 时间和日期扩展

Time.now 当前时间

Date.today 当前日期

20. 计时单位 .ago 20 /// 星期之前

20. 计时单位 .from_now 20/// 星期之后

时间与数据库可以接受的字符串格式的转化

Time.now.to_s(:db) 字符串(符合时间的字符串)

将日期转化成数据库可以接受的字符串格式

Date.today.to_s(:db)

时间日期相互转化

Time.now.to_date Date.today.to_time

注:时间类型之间可以互相运算,结果是天数

7Ruby 符号的扩展

对于迭代器中{}里被迭代的对象 可以用{ & :属性}注意:只适合迭代对象的属性的。若是被迭代对象不只主要语句快执行的内容则不能够实现如:{ |ch| count[ch] }的语句快就不适合

8Unicode 扩展(见书)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值