`
xf986321
  • 浏览: 163882 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Ruby技巧3则

阅读更多

Ruby技巧3则

1. 构造正则

我们都知道,可以通过一下两种方式来构造正则:


irb> /ruby/
=> /ruby/
irb> Regexp.new('ruby')
=> /ruby/

但实际上还有一种:


irb> %r{ruby}
=> /ruby/

如同%w, %q一样,%r将一个字符串转换为一个正则,并且你不止可以使用{}作为起始,结束符:


irb> %r!ruby!
=> /ruby/
irb> %r|ruby|
=> /ruby/

实际上,你可以使用任何不在正则中出现的字符作为字符串的起始和结束符,比如@#$%^&等等。

来自这里

2. alias 与 alias_method的区别

来自pragmati.st, 区别有3点:

  1. alias是Ruby的一个关键字,而alias_method是Module类的一个方法
  2. alias的参数就是方法本身(method identify),注意,不是字符串,也不是Symbol,alias_method的参数则是字符串或者symbol,并且使用逗号分隔。
  3. alias_method可以重定义,而alias则不能


alias new_method_name old_method_name
alias_method :new_method_name, :old_method_name
alias_method 'new_method_name', 'old_method_name'

3. ruby 中的printf


irb> "my name is %s" % ['yzhang']
=> "my name is yzhang"
irb> "your score is %.2f" % [97.2835]
=> "your score is 97.28"

实际上就是String#% 方法。它接受一个数组作为输入。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics