整型
整型分为以下两个大类: 按长度分为: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 main
import (
"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" 字符串反转-------------------------------------
//方法1
z1:="hello"
z2:=[]byte(z1)
z3 :=""
for i:=4; i>=0; i-- {
//i 4 3 2 1 0
//z2[i] o l l e h
z3 = z3 + string(z2[i]) //102 --> h
}
fmt.Println(z3)
zz1 := "hello"
//方法2
lentH:=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表示要转换的类型。表达式包括变量、复杂算子和函数返回值等.