ruby - 如何确定是否在 Ruby 中传递了可选参数

标签 ruby parameters optional-parameters

如果我在 Ruby 中有以下方法:

def foo(arg1, arg2 = "bar")
  puts arg1
  puts arg2
end

有没有办法确定用户是否在方法中为 arg2 传递了一个值?显然,我可以将 if arg2 == "bar" 添加到方法中,但这并没有捕捉到用户自己手动传入 "bar" 的情况。当然,我可以将默认值设置为任何用户都不会传入的内容,但这样很快就会变得非常丑陋。

那里有什么优雅的东西吗?

最佳答案

def foo(arg1, arg2 = (arg2_not_passed = true; "bar"))
  puts arg1
  puts arg2
  puts 'arg2 was passed' unless arg2_not_passed
end

关于ruby - 如何确定是否在 Ruby 中传递了可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19472413/

相关文章:

Python 相当于 Ruby 的 ObjectSpace?

Rust 中作为可选函数参数的闭包

c++ - 从 C++ 调用带有可选参数的 Fortran 子例程

javascript - 有哪些选项可将 URL 参数传递到 JavaScript 应用程序

sql-server - SSRS 参数 - 来自查询的值(并行)

r - 当内部函数参数依赖于可选参数时,R 中的参数传递

ruby-on-rails - Rails ActiveRecord : Query a many-to-many association with a where on the join table

ruby-on-rails - |f| 是什么意思在 Ruby 中做什么?

ruby - 两种不同语言的代码和单元测试?

api - YouTube API V3,youtube.playlistItems.list,参数ID与播放列表ID