Go 语言类型 复数型
基本概念
复数(Complex-number)是指能写成 a + bi
形式的数,这里的 a
和 b
是实数,i
是虚数单位(即 -1
开根)。
Go 语言提供两种复数类型,由两个浮点数来表示,一个表示实部(real),一个表示虚部(imag):
complex64
:其中实部和虚部都是float32
类型,占用空间为8
字节。complex128
:其中实部和虚部都是float64
类型,占用空间为16
字节。
创建复数
复数可以使用 complex
函数创建,或通过字面量直接定义。complex
函数接受两个参数,第一个是实部,第二个是虚部:
package main import "fmt" func main() { // 默认零值为 0+0i var a complex128 // 虚部为 -12i var b = 5 - 12i // 使用字面量创建复数 c := 2.3 + 7.4i // 使用 complex 函数创建复数 d := complex(5.0, 12.0) fmt.Println(a, b, c, d) }
操作复数
复数的实部和虚部可以通过内置函数 real
和 imag
函数获取:
package main import "fmt" func main() { c := 2.3 - 7.4i fmt.Printf("实部为:%v\n虚部为:%v\n", real(c), imag(c)) }
复数运算
复数类型主要用于科学计算和工程领域,除了使用普通算术运算符,在 math/cmplx
包中有更多复数计算函数:
package main import ( "fmt" "math/cmplx" ) func main() { a := 1.2 + 3.4i b := 5.6 - 1.2i // 基本运算 fmt.Println("求和:", a+b) fmt.Println("求差:", a-b) fmt.Println("求积:", a*b) fmt.Println("求商:", a/b) // 高级运算 fmt.Println("模(绝对值):", cmplx.Abs(a)) fmt.Println("共轭:", cmplx.Conj(a)) fmt.Println("指数:", cmplx.Exp(a)) fmt.Println("自然对数:", cmplx.Log(a)) fmt.Println("幂:", cmplx.Pow(a, b)) }