首页 > 解决方案 > 迭代函数旁边的括号是什么?

问题描述

[]当它位于迭代函数旁边时是什么意思。不包含键和值,例如{ |char| count[char] += 1 }

标签: rubybrackets

解决方案


块语法的某些部分解释

{ |char| count[char] += 1 }是一个。如果您是 Ruby 新手,将块视为一种匿名函数可能会有所帮助,但它实际上是一种不同于 Proc 和 lambda 对象的语言特性。Ruby 中的所有方法都隐式接受一个块作为它们的最终参数,无论它们是否使用它。

在块内,|char|声明将保存传递给块的值的变量。为块产生值的各种语言特性会将它们的值传递给如此声明的变量。

count[char]只是一个哈希或数组查找。它检索与char中的键或索引关联的count值。在您的具体示例中, at 的值必须是整数,否则表达式可能会引发 TypeError 异常。count[char]


推荐阅读