Go语言数值类型详细教程
Go语言提供了丰富的数值类型,包括整数类型、浮点类型和复数类型。每种类型都有其特定的用途和存储范围。下面将详细介绍这些类型,并附带示例代码。
1. 整数类型
整数类型用于存储整数,包括正整数、负整数和零。Go语言支持有符号和无符号整数,以及基于平台大小可变的整数。
- 有符号整数:
-int8
:8位有符号整数(-128 到 127)
-int16
:16位有符号整数(-32768 到 32767)
-int32
:32位有符号整数(-2147483648 到 2147483647)
-int64
:64位有符号整数(-9223372036854775808 到 9223372036854775807)
-int
:平台相关的有符号整数(通常是32位或64位) - 无符号整数:
-uint8
:8位无符号整数(0 到 255),别名byte
-uint16
:16位无符号整数
-uint32
:32位无符号整数
-uint64
:64位无符号整数
-uint
或uintptr
:平台相关的无符号整数(通常是32位或64位),uintptr
用于指针算术
示例代码:
package main
import "fmt"
func main() {
var int8Var int8 = 127
var uint8Var uint8 = 255
var intVar int = 100
fmt.Println("int8Var:", int8Var)
fmt.Println("uint8Var:", uint8Var)
fmt.Println("intVar:", intVar)
// 整数运算
sum := intVar + 50
fmt.Println("Sum:", sum)
}
2. 浮点类型
浮点类型用于存储带小数点的实数。
float32
:32位IEEE 754浮点数float64
:64位IEEE 754浮点数
示例代码:
package main
import "fmt"
func main() {
var float32Var float32 = 3.14159
var float64Var float64 = 3.14159265358979323846
fmt.Println("float32Var:", float32Var)
fmt.Println("float64Var:", float64Var)
// 浮点运算
product := float64Var * 2
fmt.Println("Product:", product)
}
3. 复数类型
复数类型用于存储复数,即带有实部和虚部的数。
complex64
:由两个float32
组成的复数complex128
:由两个float64
组成的复数
在Go中,可以使用内置的complex
函数来创建复数,并使用real
和imag
函数来获取其实部和虚部。
示例代码:
package main
import (
"fmt"
"math/cmplx"
)
func main() {
var complex64Var complex64 = complex(3, 4)
var complex128Var complex128 = complex(3.0, 4.0)
fmt.Println("complex64Var:", complex64Var)
fmt.Println("complex128Var:", complex128Var)
// 获取实部和虚部
realPart := real(complex64Var)
imagPart := imag(complex64Var)
fmt.Println("Real part:", realPart)
fmt.Println("Imaginary part:", imagPart)
// 复数运算(例如求模)
modulus := cmplx.Abs(complex128Var)
fmt.Println("Modulus:", modulus)