【发布时间】:2016-10-31 08:00:27
【问题描述】:
这是一个包含几个问题的问题。我看到最近使用的方法“
$ dec = 2
$ dec <<= 1
=> 4
$ dec
=> 4
$ dec <<= 2
=> 16
我认为它基本上是乘以总和加上二进制中的下一个第 n 个位置的捷径:
$ a = 2 * 2 ** 1
=> 4
$ a = a * 2 ** 2
=> 16
如果你在 fixnum 本身上尝试它是行不通的
$ 4 <<= 1
=> SyntaxError: unexpected tOP_ASGN, expecting end-of-input
1 <<= 1
^
我搜索了几个小时,但在 ruby 文档中找不到它的位置。
- 哪里有这方面的文档?
- 这存在于哪个类或模块中?
- 为什么只有先将其分配给变量才有效?
谢谢!
【问题讨论】:
-
a <<= b是a = a << b的缩写形式。 -
@Michas 有你的答案。类似于
+=、||=等。
标签: ruby binary documentation