GO语言中的复数类型在数学上很好理解,直接一个公式更好帮助理解
Y = a+b*X
是的,这是我们的小学数学中的一个公式,二元一次方程的一种表达式,我们直接将我们的例子写出来
// 1
package main
import (
"fmt"
)
func setComplex() {
var value1 complex64
value1 = 3.2 + 12i
value2 := 3.2 + 12i
value3 := complex(3.2, 12)
fmt.Println(value1, value2, value3)
}
func main() {
setComplex()
}
结果如下哦所示
E:/opt/golang/golang.exe [E:/opt/golang]
(3.2+12i) (3.2+12i) (3.2+12i)
成功: 进程退出代码 0.
我们可以清楚的看到结果中输出的三个表达式的结果相同,但是实际上是不同的,不同的地方就在于声明的类型不同
我们可以清楚的看到声明第一个表达式的时候使用的是complex64,表示这个表达式是由两个float32的类型构成,也就是实数和虚数部分,因此我们第一个表达式和第二个第三个都不同,然而第二个和第三个表达式的声明方式都是通过GO自动进行类型推导的,因此相同
下面我们通过一个表达式如何获取这个表达式的实数和虚数部分对应的值呢,下面我们写一个函数,简单的举个例子
// 1
package main
import (
"fmt"
)
func get_real_imag() {
value4 := 1.2 + 10i
var r = real(value4)
var i = imag(value4)
fmt.Println(r, i)
}
func main() {
get_real_imag()
}
运行的结果如下哦所示
E:/opt/golang/golang.exe [E:/opt/golang]
1.2 10
成功: 进程退出代码 0.
[:]