Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 将lambda应用于对象_Ruby_Lambda_Metaprogramming - Fatal编程技术网

Ruby 将lambda应用于对象

Ruby 将lambda应用于对象,ruby,lambda,metaprogramming,Ruby,Lambda,Metaprogramming,假设我在某个地方定义了一个变量和lambda phone = "1(234)567-89-01" lambda = -> { gsub(/[^0-9]/, '') } 如何将lambda应用于手机以获取12345678901 另外,我知道我可以采用以下方法: lambda = -> (arg) { arg.gsub(/[^0-9]/, '') } lambda.call(phone) #=> "12345678901" 但我希望简洁。您可以使用: ->(arg){arg}是

假设我在某个地方定义了一个变量和lambda

phone = "1(234)567-89-01"
lambda = -> { gsub(/[^0-9]/, '') }
如何将lambda应用于手机以获取
12345678901

另外,我知道我可以采用以下方法:

lambda = -> (arg) { arg.gsub(/[^0-9]/, '') }
lambda.call(phone)
#=> "12345678901"
但我希望简洁。

您可以使用:


->(arg){arg}
是更好的好东西@AndreyDeineko,好的是它不会改变原来的
手机的状态(在exec之后,手机变量仍然是
“1(234)567-89-01”
)。。。因此,为了使用新值:
new\u phone=phone.instance\u exec(&lambda)
phone.instance_exec &lambda
#=> "12345678901"