Golang教程--复数类型指南与实例

839 阅读2分钟

在这篇博文中,你将通过实例了解Go语言中的复数类型。

Golang复杂类型的数字

Golang为数字、字符串和其他类型提供了内置的数据类型。数字是int, uint, float, 和复数。复数包含两个部分--实数和虚数,例如,一个复数是12.8i。
在Golang中,复数用两种类型表示:

  • complex64类型- 此类型用于表示float32实数和虚数数据。
  • complex128类型- 该类型用于表示float64实数和虚数数据。

我们如何在Golang中创建一个复数?

在Golang中,有两种方法来创建复数
使用内建函数-

Golang提供了内置的复数函数来创建实数和虚数数据。

下面是一个复数函数的语法

func complex(real, imaginary FloatType) ComplexType 

这需要实数和虚数的浮动类型 - float 32 或 float 64。Complex类型返回Complex,complex64和complex128类型 这两个参数类型应该总是相同的。如果提供的实数和虚数是float32,返回Complex32类型,如果提供的实数和虚数是float64类型,函数总是返回Complex64类型。

使用速记赋值语法
这是另一种使用速记赋值语法创建复数的方法

complexData := 1 + 4i 

Golang复数类型例子

在下面的例子中,你将学到以下内容:

  • 使用内置的复数函数创建一个复数
  • 用速记语法声明和分配复数变量
  • 使用Println函数打印复数
  • 使用imag函数打印虚数数据部分
  • 使用real函数打印实数数据部分
  
package main  
  
import (  
 "fmt"  
)  
  
func main() {  
 complex1 := complex(10, 4)  
 complex2 := 1 + 4i  
 fmt.Println("complex Number 1", complex1)  
 fmt.Println("complex Number 2:", complex2)  
 fmt.Println("Real Number 1:", real(complex1))  
 fmt.Println("Imaginary Number 1:", imag(complex1))  
 fmt.Println("Real Number 1:", real(complex2))  
 fmt.Println("Imaginary Number 2:", imag(complex2))  
}  

当上述程序编译时,输出为

complex Number 1 (10+4i)  
complex Number 2: (1+4i)  
Real Number 1: 10  
Imaginary Number 1: 4  
Real Number 1: 10  
Imaginary Number 2: 4  

示例程序--复数的算术运算

这是一个在复数上进行算术运算--加、减、除、乘的例子,当你对复数进行加法运算时,实数部分单独加,虚数部分单独加。下面是一个复数的加、减、乘、除运算的例子,它同样适用于其他运算。

package main  
import (  
 "fmt"  
)  
  
func main() {  
 complex1 := complex(10, 4)  
 complex2 := 1 + 4i  
 fmt.Println("Addition ", complex1+complex2)  
 fmt.Println("Substraction:", complex1-complex2)  
 fmt.Println("Division ", complex1/complex2)  
 fmt.Println("Multiplication:", complex1*complex2)  
}  

输出是

Addition  (11+8i)  
Substraction: (9+0i)  
Division  (1.5294117647058822-2.1176470588235294i)  
Multiplication: (-6+44i)