文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
操作复数
有三个函数可以组装或者分解复数。内置函数 complex
会构造一个复数, real
和 imag
会分解出复数的实部和虚部。
complex(realPart, imaginaryPart floatT) complexT
real(complexT) floatT
imag(complexT) floatT
参数的类型和返回值类型是对应的。对于 complex
,两个参数必须是相同的浮点类型,并返回由相同浮点数组成的复数类型。 complex64
是 float32
对应的类型, complex128
是 float64
对应的参数类型。如果参数是一个无类型常量,它会转换成另一个参数的类型。如果两个参数都是无类型常量,他们必须实数或者虚数部分为零,并且它会返回一个无类型的复数常量。
real
和 imag
函数和 complex
正好相反的,所以对于一个值复数类型 Z 的值 z, z==Z(complex(real(z),imag(z)))
。
如果这么操作都是常量,那么返回的值也是常量。
var a = complex(2, -2) // complex128
const b = complex(1.0, -1.4) // untyped complex constant 1 - 1.4i
x := float32(math.Cos(math.Pi/2)) // float32
var c64 = complex(5, -x) // complex64
var s uint = complex(1, 0) // untyped complex constant 1 + 0i can be converted to uint
_ = complex(1, 2<<s) // illegal: 2 assumes floating-point type, cannot shift
var rl = real(c64) // float32
var im = imag(a) // float64
const c = imag(b) // untyped constant -1.4
_ = imag(3 << s) // illegal: 3 assumes complex type, cannot shift
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论