ruby 哈希参数说明

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 哈希参数说明相关的知识,希望对你有一定的参考价值。

# Hash Method Arguments

def foo(b: 2, c: 3, **args)
  puts b #=> 2
  puts args #=> {a: 1, d: 4} 
end
# Usage: foo(a: 1, b: 2, c: 3, d: 4)


# Explination:

# Old way of hash arguments
def foo(args)
  puts args[:a]
  puts args[:b]
end

foo(a: 1, b: 2) 
#=> 1
#=> 2

# Default arguments and mixing ordinary arguments with hashes

def foo(a, args = {})
  defaults = {b: 2, c: 3}
  args = defaults.merge(args)
  puts a
  puts args
end

foo(1)
#=> 1 
#=> {b: 2, c: 3}

# Even better than default arguments, is keyword arguments (no merging default arguments).
# Mix them with Array arguments:

def foo(b: 2, c: 3, **args)
  puts b
  puts c
  puts args
end

foo(a: 1, b: 2, c: 3, d: 4)
#=> 2
#=> 3 
#=> {a: 1, d: 4} 

# Optional Args:

def foo(b: 2, c: 3, **args)
  puts b
  puts c
  puts args
end

foo(a: 1, b: 2, c: 3, d: 4)
#=> 2
#=> 3 
#=> {a: 1, d: 4} 

以上是关于ruby 哈希参数说明的主要内容,如果未能解决你的问题,请参考以下文章

如何在Ruby中使用来自哈希的查询参数构造URI

Ruby - 关键字参数 - 你能把所有的关键字参数当作一个哈希值吗?如何?

Ruby奇数个哈希错误的参数

为啥关键字参数必须作为带有符号键的哈希传递,而不是 Ruby 中的字符串键?

Ruby中数组哈希的所有可能组合

Ruby 修改嵌套哈希的元素