asi*_*niy 9 ruby lambda metaprogramming
假设我有一个变量和lambda在某处定义
phone = "1(234)567-89-01"
lambda = -> { gsub(/[^0-9]/, '') }
Run Code Online (Sandbox Code Playgroud)
我怎样才能将lambda应用到手机上12345678901?
PS我知道我可以采用以下方法:
lambda = -> (arg) { arg.gsub(/[^0-9]/, '') }
lambda.call(phone)
#=> "12345678901"
Run Code Online (Sandbox Code Playgroud)
但我想要简洁.
And*_*eko 15
您可以使用BasicObject#instance_exec:
phone.instance_exec &lambda
#=> "12345678901"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
535 次 |
| 最近记录: |