我正在学习 Ruby 并查看了Array#map
这里的文档,它说语法如下
map {|element| ... } → new_array
map → new_enumerator
但是我们可以arr.map(&:to_s)
对数组的每个元素进行字符串化。据我所知,&:to_s
这只是语法糖:to_s.to_proc
(如此处所示),这意味着 map 接受一个Proc
对象作为参数。但它的函数签名却并非如此。
我对此有几个疑问。
有人可以解释这种行为并指出相关文档吗?
在这种情况下到底是什么
Proc
意思? 这不是to_s
底层类的方法吗? 对于我来说,传递一个没有关于将要调用的底层类Proc
的信息的对象意味着什么。to_s
任何帮助都将非常有帮助!