总结:var 声明变量,const声明常量。声明时可以带类型。也可以不带类型,通过右推断。
2.3 数据类型Go语言将数据类型分为四类:基础类型、复合类型、引用类型和接口类型。
基本数据类型:数值、字符串和布尔型。
复合数据类型:数组和结构体。
引用类型:指针、切片、字典、函数和通道。
接口类型。
2.3.1 整数1 整数类型
Go语言的数值类型包含了几种不同长度的整数、浮点数和复数。每种数值类型都决定了对应的取值范围和是否支持正负号。
类型
长度(字节)
取值范围
int8
1
(0~255)
uint8
1
(-128~127)
int16
2
(0~65535)
uint16
2
(-32768~32767)
int32
4
(-2147483648~2147483647)
uint32
4
(0~4294967295)
int64
8
(-9223372036854775808~9223372036854775807)
uint64
8
(0~18446744073709551615)
int
4或8
与机器字长和编译器都有关系
uint
4或8
与机器字长和编译器都有关系
uintptr
4或8
32平台4个字节,64位平台8个字节,底层编程才需要
byte
1
与uint8等价,通常表示一个unicode字符编码
rune
4
与int32等价,一般强调是一个原始数据而不是一个小整数。在一个字符串中,表示一个字符对应utf8的码点。
2 运算符
Go语言提供了丰富的内置运算符,包括算术运算符、比较运算符、逻辑运算符、位运算符、赋值运算符和其它运算符等。
算术运算符:
运算符
描述
+
加
-
减
*
乘
/
除
%
模运算(求余数)
++
自增
--
自减
在Go语言中,%取模运算符的符号和被取模的符号总是一致的,因此5%3和5%-3的结果都是2。除法运算符的结果则依赖于操作数是否全为整数,例如5.0/4.0的结果是1.25,但是7/4的结果为1,去掉小数部分,而不是四舍五入。
关系(比较)运算符:
两个相同的整数类型可以使用下面的二元关系运算符进行比较,比较表达式的结果是布尔类型。
运算符
描述
==
相等
!=
不等
<
小于
<=
小于或等于
>
大于
>=
大于或等于
逻辑运算
运算符
描述
!
非
&&
与
||
或
位运算:
前4个操作运算符并不区分是有符号还是无符号数:
运算符
描述
&
位与and (左侧和右侧都为1,则为1;否则为0)
|
位或 or(左侧或右侧只要有一个为1,结果为1;都为0结果才为0)
^
位异或 xor (相同为0,不同为1)
&^
位清空and not(右侧是0,左侧数不变;右侧是1,则左侧数清零)
<<
左移
>>
右移
位运算的例子:
X=2,y=15
二进制结果
十进制结果
0000 0010 & 0000 1111
0000 0010
2
0000 0010 | 0000 1111
0000 1111
15
0000 0010 ^ 0000 1111
0000 1101
13
0000 0010 &^ 0000 1111
0000 0000
0
0000 0010<<3
0001 0000
16
0000 0010>>1
0000 0001
1
运算符优先级:
2.3.2 浮点数