Ruby 中 & 符号在方法参数和调用中的作用是什么?

· 约 2 分钟读完 · 第 67 / 199 章

推荐答案

在 Ruby 中,& 符号在方法参数和调用中有两种主要作用:

  1. 在方法参数中:& 符号用于将传递的块(block)转换为 Proc 对象。这样可以在方法内部显式地操作块。

  2. 在方法调用中:& 符号用于将 Proc 对象或方法符号(Symbol)转换为块,以便传递给方法。

本题详细解读

1. 在方法参数中使用 &

当你在方法参数中使用 & 符号时,它会将传递给方法的块转换为 Proc 对象。这使得你可以在方法内部显式地操作块。

在这个例子中,&block 将传递给 my_method 的块转换为 Proc 对象,并存储在 block 变量中。然后你可以像调用普通 Proc 对象一样调用它。

2. 在方法调用中使用 &

当你在方法调用中使用 & 符号时,它会将 Proc 对象或方法符号转换为块,以便传递给方法。

2.1 将 Proc 对象转换为块

在这个例子中,&my_proc 将 my_proc 转换为块,并传递给 my_method。

2.2 将方法符号转换为块

在这个例子中,&method(:say_hello) 将 say_hello 方法转换为块,并传递给 my_method。

总结

  • & 在方法参数中用于将块转换为 Proc 对象。
  • & 在方法调用中用于将 Proc 对象或方法符号转换为块。

这两种用法使得 Ruby 中的块和 Proc 对象之间的转换更加灵活和方便。