当我遇到奇怪的事情时,我正在阅读complex128和complex64数据类型的Go文档:
“ complex128是具有float64实部和虚部的所有复数的集合。”
并且:
“ complex64是具有float32实部和虚部的所有复数的集合。”
更具体地说:
“实部和虚部”。
这是什么意思? “实数” 或“虚数”
答案 0 :(得分:1)
老实说,这个问题不是专门针对GoLang的。
复数是一个数学概念。
这里是一个例子:
import (
"fmt"
"math/cmplx"
)
func main() {
fmt.Println(cmplx.Sqrt(-1))
}
预期输出:
(0+1i)
有一个名为“ cmplx”的软件包可以处理复数。因此,cmplx的Sqrt类似于数学一,但它返回的是复数。
如您所见,输出由0
和1i
组成,最后一个是虚部,因为我们无法获得"-1"
的平方根。
答案 1 :(得分:1)
有关复数,请参见Wikipedia。
唯一的Go主题是Go中内置了“复杂”类型,因此与其他语言不同,您可以在不导入其他程序包的情况下对其执行基本操作:
package main
import (
"fmt"
)
func main() {
c1 := 1i
c2 := 2 + 3i
fmt.Println(c1 * c1) // i^2 = -1
fmt.Println(c1 + c2) // i + (2+3i) = 2+4i
}
要进行更高级的操作,可以使用math/cmplx
包,类似于math
包中的实数(如习惯答案)。