$ ruby --version
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]
在python上有一个例子:
def any_func(a, b=2, c = 0, d=None):
return c
print(any_func(25, c=30)) # will print 30
我怎么能在ruby上做同样的事情呢?
ruby上的“kwargs”是如何调用的?我想知道,以便进一步搜索。
我在ruby上尝试了以下代码:
#!/usr/bin/env ruby
def any_func(a, b = 2, c = 0, d = nil)
c
end
puts any_func(25, c = 30) # will print 0, 30 is expected
在Ruby中,需要使用类似hash的语法
def fun(a=1)
只设置默认值。如果你有any_func(25, c = 30)
,它的意思是“用两个参数调用any_func
,25和表达式的结果c = 30
(即30)”Read more
Ruby既有位置参数也有关键字参数。与Python不同的是,不能混合使用它们,但必须用各自的语法声明它们,并在方法调用中相应地提供它们。你知道吗
您可以参考official syntax documentation以了解有关如何声明和调用带有参数的方法的更多信息。你知道吗
至于您自己用
any_func(25, c = 30)
调用any_func
方法的例子,这里发生的是您在调用上下文中创建了值为30
的局部变量c
。还将此值传递给方法的第二个(可选)参数b
。你知道吗相关问题 更多 >
编程相关推荐