在Go语言中,复数是由实部和虚部组成的数值类型。Go语言提供了两种复数类型:complex64
和 complex128
,分别对应单精度(32位)和双精度(64位)浮点数构成的复数。
复数常量在Go语言中可以这样表示:
- 直接书写形式:使用
i
表示虚部单位,例如1+2i
表示一个实部为1,虚部为2的复数。 - 函数构造形式:使用
complex()
函数来创建复数,例如complex(1, 2)
同样创建了一个实部为1,虚部为2的复数。
下面是一些具体的例子:
package main
import (
"fmt"
)
func main() {
// 直接书写形式
c1 := 1 + 2i
fmt.Printf("c1: %v, type: %T\n", c1, c1) // 输出 c1: (1+2i), type: complex128
// 使用 complex 函数构造
c2 := complex(1, 2)
fmt.Printf("c2: %v, type: %T\n", c2, c2) // 输出 c2: (1+2i), type: complex128
// 指定类型的复数
var c3 complex64 = 1 + 2i
fmt.Printf("c3: %v, type: %T\n", c3, c3) // 输出 c3: (1+2i), type: complex64
// 显式指定类型
c4 := complex64(1 + 2i)
fmt.Printf("c4: %v, type: %T\n", c4, c4) // 输出 c4: (1+2i), type: complex64
}
在这个例子中,我们展示了如何定义不同类型的复数常量,并打印了它们的值和类型。需要注意的是,默认情况下,直接书写的复数常量会被解释为 complex128
类型。如果需要 complex64
类型,则需要显式地转换或声明。