打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ruby系列教材(26):More about methods(3)

大家感兴趣的东西来了---Collecting Hash Arguments

 

一切都来源于Hash,使用 Hash Object 作为 Arguments,例如:

def test(a,b)

  #...

end

 

我们可以这样用:

test("hi",{"no1"=>"good",

"no2"=>"bad"})

 

这里的括号让人看的很不舒服,ruby允许在调用method的时候,去掉hash object的括号:

test("hi","no1"=>"good","no2"=>"bad")

注意不要被表明的东西迷惑,这里并没有3个arguments,而是2个,所有的类似表达于 a=>b 都会被收集起来,作为一个hash object

 

其实大家喜欢使用 symbol object 作为 key,这样,我们在Rails中常见的method就出现了:

find(:all,:limit=>5,:order="id desc")

 

为了说明问题,这里特别举例:

def test(opts={})
  "#{opts[:name]}---#{opts[:des]}"
end
puts test(:name=>‘kc‘,:des=>‘I like ruby‘)
puts test(:des=>‘I like ruby‘,:name=>‘kc‘)

结果:

kc---I like ruby
kc---I like ruby

这个例子给我们提供了一个清晰的映象,更加要注意的是,hash 中的 key-value 对交换顺序,结果也一样,这就说明了,当参数为hash object 时,我们可以不考虑顺序问题

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
LLVM和Ruby近况:llvmruby、yarv2llvm以及regexpllvm、Rubinius
class<T>和 class<?>类型 有什么区别
[python] __new__() 和 __init__()的区别
eigenclass - Changes in Ruby 1.9
The XDCscript Language - XDC脚本语言介绍:JavaScript
C# 4.0 新特性
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服