gpt4 book ai didi

ruby - Ruby 中的 `&:capitalize` 到底是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 07:11:23 31 4
gpt4 key购买 nike

我刚读了这个答案Converting upper-case string into title-case using Ruby .

有如下一行代码

"abc".split(/(\W)/).map(&:capitalize).join

&:capitalize 到底是什么?在我自己将它放入 irb 之前,我会告诉你,它不是有效的 ruby​​ 语法。它必须是某种 Proc 对象,因为 Array#map 通常需要一个 block 。但事实并非如此。如果我单独将它放入 irb,我会得到 syntax error, unexpected tAMPER

最佳答案

foo(&a_proc_object)a_proc_object 变成一个 block 并用该 block 调用 foo。

foo(¬_a_proc_object)not_a_proc_object 上调用to_proc,然后将to_proc 返回的proc 对象变成一个 block 并用该 block 调用 foo。

在 ruby​​ 1.8.7+ 和主动支持中,Symbol#to_proc 被定义为返回一个 proc,它调用由 proc 参数上的符号命名的方法。

关于ruby - Ruby 中的 `&:capitalize` 到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1792683/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com