Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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中调用多个对象的方法很酷吗?_Ruby_Object_Methods - Fatal编程技术网

在Ruby中调用多个对象的方法很酷吗?

在Ruby中调用多个对象的方法很酷吗?,ruby,object,methods,Ruby,Object,Methods,很久以前,我在Ruby中看到了这个技巧。而不是做(例如) 您可以一次调用所有对象,并在最后追加操作,类似于 if %w(array1 array2 array3).each { |a| a.empty? } 但我认为这比那更简单。。。也可能是这样。我真的不知道,但这就是为什么我想知道。谢谢。如果[array1,array2,array3],好吗?{| a | a.empty?} 我想这就是你要找的J Cooper说得对,但只需添加一个脚注: %w(array1 array2 array3) #

很久以前,我在Ruby中看到了这个技巧。而不是做(例如)

您可以一次调用所有对象,并在最后追加操作,类似于

if %w(array1 array2 array3).each { |a| a.empty? }

但我认为这比那更简单。。。也可能是这样。我真的不知道,但这就是为什么我想知道。谢谢。

如果[array1,array2,array3],好吗?{| a | a.empty?}


我想这就是你要找的

J Cooper说得对,但只需添加一个脚注:

%w(array1 array2 array3) # => ["array1", "array2", "array3"]
%w获取一个字符串并在空白处将其拆分,以返回一个字符串数组

如果您使用的是Rails或Ruby 1.9,则可以使用Symbol#to_proc:

[array1, array2, array3].all?(&:empty?)
另一方面,Symbol#to _proc可能会有性能问题,因此在可读性值得的情况下使用它。

%w()从按空格分割的内容创建一个数组。这里可以使用一个简单的[]数组。否则,我想我和J库珀在一起?事情更妙的是,检查上面的内容让我想起了我已经忘记的%W()数组。
[array1, array2, array3].all?(&:empty?)