Ruby 中是否有接收简单返回其参数的 lambda 的快捷方式?
我正在尝试具有以下功能:
def some_method(x, y, decorator = ->(x) { x })
…
end
Run Code Online (Sandbox Code Playgroud)
改写成看起来有点像
def some_method(x, y, decorator = method(:itself))
…
end
Run Code Online (Sandbox Code Playgroud)
也许有一种方法可以改变接收器Object#itself
?
您可能在 ruby 中多次看到这样的代码:
array.map(&:upcase)
Run Code Online (Sandbox Code Playgroud)
那么,&:upcase
实际上是什么意思?它实际上是在调用Symbol#to_proc
.
因此,您可以选择这样定义方法:
def some_method(x, y, decorator = :itself.to_proc)
# ...
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
36 次 |
最近记录: |