Go 什么是>>;=操作员do

Go 什么是>>;=操作员do,go,Go,我正在阅读go中的排序实现,在func sort(数据接口)的实现中有一个特殊的循环: 排序实现: 有人能给我解释一下>>=操作符是做什么的吗 编辑:这只是一个简单的转变,然后是做作。我想它在一个循环中的事实困扰着我。检查: 左移整数>无符号整数 移位运算符按移位计数移位左操作数 由右操作数指定。如果需要,它们执行算术移位 左操作数是有符号整数,如果是有符号整数,则逻辑移位 无符号整数。班次计数没有上限。转移 表现为左操作数移位n次,每次移位1 计数n。因此,x>1是最佳值 与x/2相同,但

我正在阅读go中的排序实现,在
func sort(数据接口)
的实现中有一个特殊的循环:

排序实现:

有人能给我解释一下>>=操作符是做什么的吗

编辑:这只是一个简单的转变,然后是做作。我想它在一个循环中的事实困扰着我。

检查:

左移整数>无符号整数
移位运算符按移位计数移位左操作数 由右操作数指定。如果需要,它们执行算术移位 左操作数是有符号整数,如果是有符号整数,则逻辑移位 无符号整数。班次计数没有上限。转移 表现为左操作数移位n次,每次移位1 计数n。因此,x>1是最佳值 与x/2相同,但向负无穷大方向截断

类似问题:


操作员是右移操作员

>=
是右移运算符和赋值的约定形式:

i >>= 1
这与:

tmp := i >> 1
i = tmp
这与(无需创建新变量)相同:


i>>=1
=
i=i>>1
的可能重复
i >>= 1
tmp := i >> 1
i = tmp
i := i >> 1