ruby - 为什么 Ruby 中的这个布尔语句会出错?
问题描述
这可能很简单,但我不明白为什么这个语句不是有效的 Ruby 代码:
3.>5 || 3.>2
SyntaxError: unexpected tINTEGER, expecting end-of-input
为什么这个是:
3.>5 || 3.> #this seems nonsensical
=> false
为什么在我的书中,这似乎给出了一个误导性的答案
3.>5 || 3.>(2)
=> false
然而,这个给出了“正确”的答案
3.>(5) || 3.>(2)
=> true
解决方案
Ruby 对空间敏感,并且与本网站中使用的语法高亮显示不同,Ruby 在解析运算符时使用“maximum munch”。
3.<
与 不同3. <
,因为.<
解析为“将 < 消息发送到整数 3”。
添加一个空格。更好的是,出于这个原因,永远不要留下一个悬空点,并且代码3.0 < 1
.
接下来,3.>5 || 3.>(2)
解析为3.>(5 || 3.>(2))
,因为 Ruby 神奇地消失了括号。遵循您的风格指南,并在几乎所有二元运算符周围添加空格。少数不应该使用的惯用语是.
, .&
, ..
, **
, 等等...
推荐阅读
- c# - 提供数据到
xml xml 对于 C# Web 服务 - java - 更改抽屉布局项目
- android - 在黑白之间切换状态栏文本颜色
- css - 结合 vue 材料和 vue cli webpack 模板时,表单元素显示为透明
- angular - Angular 6 - 从 ReactiveForm 访问数组中的数组
- android - 启用在地图框上显示高尔夫球车路径以及行驶路径
- amazon-web-services - 我的应用所在的区域对 Amazon SES 免费套餐是否重要?
- reflection - 我可以在纯 Kotlin 中通过类名实例化一个对象吗
- assembly - 如何使用 malloc 空间执行代码而不是存储数据
- javascript - 使用 Jest 测试 DOMParser