go语言学习-iota和左移右移的用法

栏目: Go · 发布时间: 7年前

内容简介:在go语言中iota比较特殊,是一个被编译器修改的常量,在每一个const关键字出现时被重置为0,然后在下一个const出现之前,每出现一次iota,其所代表的数字就会自动加1左移运算符"<<“是双目运算符。左移n位就是乘以2的n次方。 其功能把”<<“左边的运算数的各二进位全部左移若干位,由”<<"右边的数指定移动的位数,高位丢弃,低位补0。右移运算符">>“是双目运算符。右移n位就是除以2的n次方。 其功能是把”>>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数。

在 go 语言中iota比较特殊,是一个被编译器修改的常量,在每一个const关键字出现时被重置为0,然后在下一个const出现之前,每出现一次iota,其所代表的数字就会自动加1

左移运算符"<<“是双目运算符。左移n位就是乘以2的n次方。 其功能把”<<“左边的运算数的各二进位全部左移若干位,由”<<"右边的数指定移动的位数,高位丢弃,低位补0。

右移运算符">>“是双目运算符。右移n位就是除以2的n次方。 其功能是把”>>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数。

package iota

import "fmt"

func Test()  {

	const(
		c1 = iota  //c1=0
		c2 = iota  //c2=1
		c3 = iota  //c3=2
	)

	fmt.Println("c1 = ",c1," c2 = ",c2," c3 = ",c3,"\n")

	const(
		a = 1 << iota //a = 1
		b = 1 << iota //b = 2
		c = 1 << iota //c = 4
	)
	fmt.Println("a = ",a," b = ",b," c = ",c,"\n")

	const(
		v1 = iota //v1 = 0
		v2        //v2 = 1
		v3        //v3 = 2
	)
	fmt.Println("v1 = ",v1," v2 = ",v2," v3 = ",v3,"\n")

	const(
		x = 1 <<iota //x = 1
		y			  //y = 2
		z             //z = 4
	)
	fmt.Println("x = ",x," y = ",y," z = ",z)
}

代码执行结果和上面注释相同:

go语言学习-iota和左移右移的用法

欢迎关注问我团队公众号:

go语言学习-iota和左移右移的用法


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

算法设计与分析基础

算法设计与分析基础

Anany levitin / 潘彦 / 清华大学出版社 / 2007-1-1 / 49.00元

作者基于丰富的教学经验,开发了一套对算法进行分类的新方法。这套方法站在通用问题求解策略的高度,能对现有的大多数算法都能进行准确分类,从而使本书的读者能够沿着一条清晰的、一致的、连贯的思路来探索算法设计与分析这一迷人领域。本书作为第2版,相对第1版增加了新的习题,还增加了“迭代改进”一章,使得原来的分类方法更加完善。 本书十分适合作为算法设计和分析的基础教材,也适合任何有兴趣探究算法奥秘的读者......一起来看看 《算法设计与分析基础》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

SHA 加密
SHA 加密

SHA 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具