整型
| int8 | int16 | int32 | int64 | int |
|---|---|---|---|---|
| -2^7~2^7-1 | -2^15~2^15-1 | -2^31~2^31-1 | -2^63~2^63-1 | 依计算机平台定int32或者int64 |
| -128-127 | -32768~32767 | -2147483648-2147483647 | -9223372036854775808~9223372036854775807 |
| uint8 | uint16 | uint32 | uint64 | uint |
|---|---|---|---|---|
| 0-2^8-1 | 0~2^16-1 | 0~2^32-1 | 0~2^64-1 | 依计算机平台定uint32或者uint64 |
| 0~255 | 0~65535 | 0~4294967295 | 0~18446744073709551615 |
go 语言没有乘方的运算符
- 方法1
x := 2.0
y := 8.0
fmt.Println(math.Pow(x, y))
- 方法2
只适用2的乘方
var i uint8 = 1
fmt.Println(i<<8)
浮点型
- float32
- float64
go语言浮点数实现IEEE754规格的浮点数,尽量使用float64来运算,float32容易误差扩散.
布尔型
bool | boolean
- 布尔型整型互转
func Btoi(b bool) int {
if b {
return 1
}
return 0
}
func Itob(i int) bool {
return i == 1
}
字符型
- int 与 string 互转
i, err := strconv.Atoi("12")
s, err := strconv.Itoa(12)
- 字符型转化为有符号整数
ageint, _ := strconv.ParseInt(age, 16, 8)
- 函数原型
func ParseInt(s string, base int, bitSize int) (i int64, err error)
base 取值范围 (0, 2 to 36)
base 取值为0 表示将按字符串的前缀解析 如 "017 "按8进制 "0x1f"按16进制解析
base 取值为8 表示按8进制解析
bitSize 取值范围 (0-64)表示解析后整型所占的bit位的个数
- 字符型转化为无符号整数
strconv.ParseUint("98", 10, 8)
- 字符型转化为浮点数
f,err := strconv.ParseFloat("1.5", 32)
f,err := strconv.ParseFloat("1.5", 64)//建议使用
// 最后一个参数32就转化用float32位转化
// 非32就用float64转化
- 字符型转化为布尔型
b, err := strconv.ParseBool("true")
if err != nil{
// 错误处理
}
- 其他类型转化为字符 方法1
fmt.Printf("%s:%[1]T\n", fmt.Sprintf("%t", true))
fmt.Printf("%s:%[1]T\n", fmt.Sprintf("%d", 17))
fmt.Printf("%s:%[1]T\n", fmt.Sprintf("%.2f", 17.777))
方法2
fmt.Printf("%s:%[1]T\n", strconv.FormatBool(true))
fmt.Printf("%s:%[1]T\n", strconv.FormatInt(17, 8))
fmt.Printf("%s:%[1]T\n", strconv.FormatFloat(17, byte('f'), 0, 64))