加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby如何将2/3/4解析为2÷3÷4?

发布时间:2020-12-17 02:56:54 所属栏目:百科 来源:网络整理
导读:很多 ruby的语法和解析都是相对合乎逻辑的,但是我很困惑ruby如何从上下文知道2/3/4是2÷3÷4而不是解析/ 3 /作为正则表达式?这是一个正确的解析,但/ 3 /也是一个有效的正则表达式,它怎么会知道/ 3 /不是一个正则表达式. 我认为这可能是一个数字文字的东西,
很多 ruby的语法和解析都是相对合乎逻辑的,但是我很困惑ruby如何从上下文知道2/3/4是2÷3÷4而不是解析/ 3 /作为正则表达式?这是一个正确的解析,但/ 3 /也是一个有效的正则表达式,它怎么会知道/ 3 /不是一个正则表达式.

我认为这可能是一个数字文字的东西,但如果你这样做

a = 6
b = 4
c = 2

a /b/ c

Ruby仍然将其解析为分裂.这是如何运作的?

实际上,我意识到这个问题还有更多,

让我说我有这个

def a(x)
  x
end

a = 4
b = 2
i = 4

a /b/i #=> 0

如何将a / b / i解析为0而不是/ b / i
为什么a / b / i被解析为a./(b./(i))而不是(/ b / i)?

解决方法

在Ruby(和其他一些语言)中,运算符实际上是表达式中对象的方法.因此,Ruby将您的表达视为:

(a./(b))./(c)

当你使用正则表达式时,没有主要对象,因此Ruby可以确定你想要一个正则表达式而不是除法.

Here is a nice article获取更多信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读