Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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/0/drupal/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 如何为每个可枚举方法创建别名?_Ruby - Fatal编程技术网

Ruby 如何为每个可枚举方法创建别名?

Ruby 如何为每个可枚举方法创建别名?,ruby,Ruby,是否可以为可枚举的每个创建别名?例如,使my_each方法只是原始each的别名 我尝试使用别名,但没有成功: 模块可枚举 别名:my_each:each 终止 我知道我可以定义自己的my_each方法,但我只需要一个别名,以便在任何枚举器上使用时,它的行为与each完全相同。这应该可以做到: module Enumerable def my_each(*args, &block) each(*args, &block) end end p [1,2,3].my

是否可以为可枚举的
每个
创建别名?例如,使
my_each
方法只是原始
each
的别名

我尝试使用
别名
,但没有成功:

模块可枚举
别名:my_each:each
终止

我知道我可以定义自己的
my_each
方法,但我只需要一个别名,以便在任何枚举器上使用时,它的行为与
each
完全相同。

这应该可以做到:

module Enumerable
  def my_each(*args, &block)
    each(*args, &block)
  end
end
p [1,2,3].my_each
# => #<Enumerator: [1, 2, 3]:each>
p (1..5).my_each
# => #<Enumerator: 1..5:each>
模块可枚举
每个定义我的_(*参数和块)
每个(*参数和块)
终止
终止
p[1,2,3]。我的每一个
# => #
p(1..5)。我的每一个
# => #

您不能使用别名,因为
每个
实际上都不是
可枚举
中的一个方法,所以不需要使用别名
Enumerable
期望它混合到的每个类都提供它。

不清楚您期望的是什么。你认为你的第一行代码是什么?它正在返回一个枚举器。它枚举了
[1,2,3]
。您不能将
my_each
(1..5)
一起使用,因为它已经在枚举数组
[1,2,3]
“我尝试了[…]但没有成功”不是一个足够精确的错误描述,我们无法帮助您。你到底是怎么尝试的?什么不起作用?它怎么不起作用?你的代码有什么问题?你收到错误信息了吗?错误消息是什么?你得到的结果不是你期望的结果吗?你期望得到什么样的结果?为什么?你会得到什么样的结果?两者有什么不同?你观察到的行为是否不是期望的行为?想要的行为是什么?为什么?观察到的行为是什么?它们之间有什么不同?@JörgWMittag我用一个例子更新了这个问题,说明了我尝试过但没有成功的方法。尽管已经有了一个公认的答案,并解释了为什么这是不可能的。谢谢你的反馈。无论如何,问题已经解决了,这就是为什么我把我得到的答案标记为已接受。