类型别名 值得注意的是,在Go中有两个类型 类型零值 Go中的运算符都是从左往右结合的,一元运算符只可以用作一个值的操作(作为后缀),而二元运算符则可以和两个值或者操作数结合(作为中缀)。优先级越高的运算符可以优先执行,下面从上到下表示各个运算符优先级从高到低: 当然,可以通过括号来提升某个表达式的运算优先级 逻辑或 逻辑与 值得注意的是,在 Go 语言中,&& 和 || 具有短路性质,当运算符左边表达式的值已经能够决定整个表达式的值的时候(&& 左边的值为 false,|| 左边的值为 true),运算符右边的表达式将不会被执行。利用这个性质,如果你有多个条件判断,应当将计算过程较为复杂的表达式放在运算符的右侧以减少不必要的运算 按位与& :将对应位上的值进行与运算,即两个都为1时结果才为1,否则为0 按位或|:将对应位上的值进行或运算,即只要有一个为1时结果为1,两个都为0时结果为0 按位异或^:对应位上的值相同,结果位0;否则结果为1 需要注意的时, 上面的例子中,一个是有符号的数一个是无符号的数,第一个i为无符号的数,^i 即^0001 0100 = 1110 1011 ,则结果为235,是无符号的数;第二个20默认是有符号的数,结果也为有符号数,为其负数补码(一个有符号位的^操作为 这个数+1的相反数) 按位清零 左移Go的基本类型
−2232 ~
2232−1 / 0~
232−1
−2264 ~
2264−1 / 0~
264−1
当在使用某个类型时,可以给它起另外一个名字,然后就可以在代码中使用新的名字了。比如type MONEY int
,之后就可以使用MONEY
来操作int
型的数据了。type( 整数 int32 小数 float64 ) var a 整数 = 1
byte
和rune
,它们分别是uint8
和uint32
的别名。其中,byte
是一个字节的长度,主要用来处理ascii字符;而rune
是4个字节长度,可以用来处理unicode或者utf-8字符
零值并非空值,而是当变量被声明为某种类型后的默认值。通常情况下数值类型的默认值为0,bool类型的默认值为false,string类型的默认值为空字符串Go的运算符
优先级
运算符
备注
7
^ !
一元运算符,^按位取反,!逻辑非
6
* / % << >> & &^
*乘,/除,%取余,<<位左移,>>位右移,&按位与,&^按位清零
5
+ – | ^
+加,-减,|按位或,^异或
4
== != < <= >= >
==等于,!=不等,<小于,<=小于等于,>=大于等于,>大于
3
<-
用于channel
2
&&
逻辑与
1
||
逻辑或
逻辑非!
!true -> false !false -> true
||
true || true -> true true || false -> true false || true -> true false || false -> false
&&
true || true -> true true || false -> false false || true -> false false || false -> false
^
作为一元运算符时,功能是按位取反,包括符号位在内(注意有符号数和无符号数的区别)。举个例子:func main(){ var i uint8 = 20 fmt.Println(^i,^20) // 输出结果是:235 -21 }
&^
:对运算符左边的数的每一位根据运算符右边的数对应位上的值进行操作,如果右边数对应位上为1,则左边数对应位为0,如果右边数对应位上为0,则左边对应位的数不变4 &^ 5 -> 101 &^ 100 = 001
<<
右移>>
:用法:num << n
或num >> n
向左或向右移动n位,空白部分用0填充
+
,-
,*
,/
,其中/
对于整数运算,其结果还是整数%
只能作用于整数a = a + b
简写为a += b
,同样的写法也适用于-=
,*=
,/=
,%=
++
,--
只能作为语句,不能作为表达式,比如n = i++
这样的写法是无效的
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算