加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby 2.0从哈希中命名参数

发布时间:2020-12-17 03:16:11 所属栏目:百科 来源:网络整理
导读:如果我在 ruby中有一个带有命名参数的方法…… def smoosh(first: nil,second: nil) first + secondend 如果密钥匹配,最简单的方法是将哈希值传递给该方法: params = { first: 'peanut',second: 'butter' }smoosh(params) 上面会产生一个参数错误. 更新:
如果我在 ruby中有一个带有命名参数的方法……

def smoosh(first: nil,second: nil)
    first + second
end

如果密钥匹配,最简单的方法是将哈希值传递给该方法:

params = { first: 'peanut',second: 'butter' }

smoosh(params)

上面会产生一个参数错误.

更新:

看起来这可能是Sinatra参数如何工作的问题.

当我做:

get 'a_sinatra_route' do
  hash = params.clone
  hash.symbolize_keys!

  smoosh(hash)
end

它工作正常.当它们自己传递参数时它不起作用. (即使您可以使用符号键params [:attr]访问各个参数)

解决方法

似乎对我来说工作得很好.

2.0.0p0 :007 > def smoosh(first: nil,second: nil)
2.0.0p0 :008?>   first + second
2.0.0p0 :009?> end
 => nil
2.0.0p0 :010 > params = { first: 'peanut',second: 'butter' }
 => {:first=>"peanut",:second=>"butter"}
2.0.0p0 :012 > smoosh(params)
 => "peanutbutter"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读