基本数据类型
go语言中的整型分为两类,一类是有符号的整型int,还有一类是无符号的整型uint。
在go语言中,我们在使用整型时,需要指定其大小,这也是GO语言中与其他语言不同的地方,java、C、Python等,可以使用整形,无需指定其大小。举例:
var age int8 //这是go使用整形时的格式
int age; //这是java使用整形时的格式
复制代码
如果我们不给其指定大小,那么int和uint的大小就会按照操作系统的大小而定。32位的操作系统就会使其成为int32,uint32;64位的操作系统就会使其成为int64,uint64。
| 类型 | 描述 |
|---|---|
| int | 根据操作系统大小而定 |
| int8 | 有符号的8位整型 |
| int16 | 有符号的16位整型 |
| int32 | 有符号的32位整型 |
| int64 | 有符号的64位整型 |
| uint | 根据操作系统大小而定 |
| uint8 | 无符号的8位整型 |
| uint16 | 无符号的16位整型 |
| uint32 | 无符号的32位整型 |
| uint32 | 无符号的64位整型 |
浮点型
go语言中只有两种浮点型:float32和float64。float32就相当于Java中的float,而float64就相当于Java中的double,我们在声明浮点型时也需要考虑其可能使用的大小,否则会造成内存浪费。
布尔值
go语言的布尔值跟java的类似;go语言中的布尔值是bool类型,而布尔值数据也只有true和false两个值。布尔类型的默认值是false。
var flag bool
fmt.Println(flag) //false
复制代码
字符串
go语言中的字符串的内部实现使用UTF-8编码,而字符串的值用""声明。
s1 := "hello"
s2 := "go"
fmt.Println(s1, s2) //hello go
复制代码
字符串转义符
Go语言的字符串常见转义符包含回车、换行、单双引号、制表符等。下面是一些常见的转义符及其含义
\r:回车符(返回行首)\n:换行符(直接跳到下一行的同列位置)\t:制表符':单引号":双引号\:反斜杠
例如,我们要打印一个Windows平台下的一个文件路径,可以这样写:
package main
import (
"fmt"
)
func main() {
fmt.Println("str := "c:\go\bin\go.exe"")
}
复制代码
此外,Go语言中要定义一个多行字符串时,就必须使用反引号字符。反引号间换行将被作为字符串中的换行,但是所有的转义字符均无效,文本将会原样输出。例如:
s1 := `第一行
第二行
第三行`
fmt.Println(s1)
复制代码
运算符
Go语言中有多种运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符等。
- 算术运算符:包括加(+)、减(-)、乘(*)、除(/)、取余(%)以及自增(++)和自减(–)等。
- 关系运算符:用于比较两个值的大小关系,包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)等。
- 逻辑运算符:用于连接多个条件,包括逻辑与(&&)、逻辑或(||)和逻辑非(!)等。
- 位运算符:用于对整数在内存中的二进制位进行操作,包括按位与(&)、按位或(|)、按位异或()、按位左移(<<)和按位右移(>>)等。此外,Go语言还提供了“&”运算符,该运算符用于执行按位清空操作。
- 赋值运算符:用于给变量赋值,包括简单赋值(=)和复合赋值(+=、-=、*=、/=、%=、&=、|=、^=、<<= 和 >>=)等。