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))
}