ruby - 迭代函数旁边的括号是什么?
问题描述
[]
当它位于迭代函数旁边时是什么意思。不包含键和值,例如{ |char| count[char] += 1 }
解决方案
块语法的某些部分解释
{ |char| count[char] += 1 }
是一个块。如果您是 Ruby 新手,将块视为一种匿名函数可能会有所帮助,但它实际上是一种不同于 Proc 和 lambda 对象的语言特性。Ruby 中的所有方法都隐式接受一个块作为它们的最终参数,无论它们是否使用它。
在块内,|char|
声明将保存传递给块的值的变量。为块产生值的各种语言特性会将它们的值传递给如此声明的变量。
count[char]
只是一个哈希或数组查找。它检索与char中的键或索引关联的count值。在您的具体示例中, at 的值必须是整数,否则表达式可能会引发 TypeError 异常。count[char]
推荐阅读
- bootstrap-4 - Summernote 样式不起作用
- eclipse - 测试 NG - Eclipse 中的控制台输出被覆盖
- java - Java 如何检查值已经被 AES 加密;
- amazon-web-services - 无法在 AWS 中使用 RDS 创建弹性 Beanstalk 环境
- maven - 如何在基于 Maven 的项目中为 Tibco BW 6.x 应用程序引用环境文件
- html - 如何使用 CSS 删除特定文本
- java - 使用 Hibernate HQL 从 Oracle DB 检索记录时的性能问题
- selenium-webdriver - 如何解决错误:无法聚焦元素 - Selenium 中的关键字驱动框架
- python-3.x - pahomqtt 可以处理的最大订阅数是多少
- node.js - nsp 扫描问题