整型
整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64
其中,uint8就是我们熟知的byte型,int16对应C语言中的short型,int64对应C语言中的long型。
类型描述
| uint8 | 无符号 8位整型 (0 到 255) |
|---|---|
| uint16 | 无符号 16位整型 (0 到 65535) |
| uint32 | 无符号 32位整型 (0 到 4294967295) |
| uint64 | 无符号 64位整型 (0 到 18446744073709551615) |
| int8 | 有符号 8位整型 (-128 到 127) |
| int16 | 有符号 16位整型 (-32768 到 32767) |
| int32 | 有符号 32位整型 (-2147483648 到 2147483647) |
| int64 | 有符号 64位整型 (-9223372036854775808 到 9223372036854775807) |
特殊整型
| uint | 32位操作系统上就是uint32,64位操作系统上就是uint64 |
|---|---|
| int | 32位操作系统上就是int32,64位操作系统上就是int64 |
| uintptr | 无符号整型,用于存放一个指针 |
浮点型
Go语言支持两种浮点型数:float32和float64。这两种浮点型数据格式遵循IEEE 754标准: float32 的浮点数的最大范围约为 3.4e38,可以使用常量定义:math.MaxFloat32。 float64 的浮点数的最大范围约为 1.8e308,可以使用一个常量定义:math.MaxFloat64。
package mainimport ("fmt""math")func main() {fmt.Printf("%f\n", math.Pi)fmt.Printf("%.2f\n", math.Pi)}
布尔值
布尔型数据:true(真)和false(假)
- 布尔类型变量的默认值为false。
- Go 语言中不允许将整型强制转换为布尔型.
- 布尔型无法参与数值运算,也无法与其他类型进行转换。
字符串
修改字符串
//修改字符s5:="zhang"s6:=[]byte(s5)s6[0]='l'fmt.Println(string(s6))
字符串反转
// "hello" --> "olleh" 字符串反转-------------------------------------//方法1z1:="hello"z2:=[]byte(z1)z3 :=""for i:=4; i>=0; i-- {//i 4 3 2 1 0//z2[i] o l l e hz3 = z3 + string(z2[i]) //102 --> h}fmt.Println(z3)zz1 := "hello"//方法2lentH:=len(zz1)for i:=0; i< lentH/2; i++ {zz1[i],zz1[lentH-1-i] = zz1[lentH-1-i] , zz1[i]}fmt.Println(string(zz1))
字符串转义符
| \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操作 |
byte类型
s1:="Golang"s2:='G' //ASSII占一个字节 (8位bit)fmt.Println(s1,s2)
runne类型
c1:="中国"c2:='中' //UTF-8 中文占3字节fmt.Println(c1,c2)
类型转换
Go语言中只有强制类型转换,没有隐式类型转换。该语法只能在两个类型之间支持相互转换的时候使用。
强制类型转换的基本语法如下:T(表达式)
其中,T表示要转换的类型。表达式包括变量、复杂算子和函数返回值等.
