类型 | 符号 | 范围 |
---|---|---|
uint8 | 无 | 0 到 255 |
uint16 | 无 | 0 到 65535 |
uint32 | 无 | 0 到 4294967295 |
uint64 | 无 | 0 到 18446744073709551615 |
uint | 无 | 32位操作系统上就是uint32 ,64位操作系统上就是uint64
|
int8 | 有 | -128 到 127 |
int16 | 有 | -32768 到 32767) |
int32 | 有 | -2147483648 到 2147483647 |
int64 | 有 | -9223372036854775808 到 9223372036854775807) |
int | 有 | 32位操作系统上就是int32 ,64位操作系统上就是int64
|
uintptr | 无 | 用于存放一个指针 |
// 查看变量占用字节大小和数据类型 var n2 int64 = 10 fmt.Printf("n2 的 类型 %T n2占用的字节数是 %d", n2, unsafe.Sizeof(n2))
const ( MaxFloat32 = 3.40282346638528859811704183484516925440e+38 // 2**127 * (2**24 - 1) / 2**23 SmallestNonzeroFloat32 = 1.401298464324817070923729583289916131280e-45 // 1 / 2**(127 - 1 + 23) MaxFloat64 = 1.797693134862315708145274237317043567981e+308 // 2**1023 * (2**53 - 1) / 2**52 SmallestNonzeroFloat64 = 4.940656458412465441765687928682213723651e-324 // 1 / 2**(1023 - 1 + 52) )
package main import ( "fmt" "math" ) func main() { fmt.Printf("%f\n", math.Pi) fmt.Printf("%.2f\n", math.Pi) // 浮点数打印 }
需要进行浮点计算时,可以使用放大 100 倍的整数计算,计算完成再将结果缩小 100 倍
复数var c1 complex64 c1 = 1 + 2i var c2 complex128 c2 = 2 + 3i fmt.Println(c1) fmt.Println(c2)
- 布尔类型变量的默认值为
false
- Go 语言中不允许将整型强制转换为布尔型
- 布尔型无法参与数值运算,也无法与其他类型进行转换
转义符 | 含义 |
---|---|
\r |
回车符(返回行首) |
\n |
换行符(直接跳到下一行的同列位置) |
\t |
制表符 |
\' |
单引号 |
\" |
双引号 |
\\ |
反斜杠 |
方法 | 介绍 |
---|---|
len(str) | 求长度 |
+或fmt.Sprintf | 拼接字符串 |
strings.Split | 分割 |
strings.contains | 判断是否包含 |
strings.HasPrefix,strings.HasSuffix | 前缀/后缀判断 |
strings.Index(),strings.LastIndex() | 子串出现的位置 |
strings.Join(a[]string, sep string) | join操作 |
// 遍历字符串 func traversalString() { s := "hello沙河" for i := 0; i < len(s); i++ { //byte fmt.Printf("%v(%c) ", s[i], s[i]) } fmt.Println() for _, r := range s { //rune fmt.Printf("%v(%c) ", r, r) } fmt.Println() }
# 输出: 104(h) 101(e) 108(l) 108(l) 111(o) 230(æ) 178(²) 153() 230(æ) 178(²) 179(³) 104(h) 101(e) 108(l) 108(l) 111(o) 27801(沙) 27827(河)