[Go 언어] 9. Go 언어는 복소수를 표현하는 형식을 제공해요.

안녕하세요. 언제나 휴일, 언휴예요.

통계나 물리 엔진 등을 개발할 때 실수 뿐만 아니라 복소수를 계산할 때가 있어요. Go언어에서는 복소수를 표현할 수 있는 형식으로 complex64와 complex128을 제공하고 있어요.

complex64 형식은 float32 실수부와 허수부로 구성하며 complex128 형식은 float64 실수부와 허수부로 구성하고 있어요. 프로젝트를 새로 생성하여 복소수를 표현해 보아요.

[그림 1] LiteIDE에 프로젝트 생성 및 소스 추가
// Example 복소수 표현
package main
 
import "fmt"
 
func main() {
    var c1 complex64 = 1 + 2i //실수부와 허수부
    var c2 complex64 = 3i     //허수부만 있을 때
    var c3 complex64 = 2.0    //실수부만 있을 때
    fmt.Println(c1 + c2)      //복소수 덧셈
    fmt.Println(c1 - c3)      //복소수 뺄셈
 
    var f1 = real(c1) //실수부 추출
    var f2 = imag(c1) //허수부 추출
    fmt.Println(f1)
    fmt.Println(f2)
 
    var c4 = complex(f1, f2) //complex 함수로 복소수 합성
    fmt.Println(c4)
}

Go언어에서 복소수 형식 변수에 값을 초기화할 때 실수부와 허수부, 허수부만 있을 때, 실수부만 있을 때 값을 표현할 수 있어요.

  • 복소수 형식 변수에 값을 초기화
var c1 complex64 = 1 + 2i //실수부와 허수부
var c2 complex64 = 3i     //허수부만 있을 때
var c3 complex64 = 2.0    //실수부만 있을 때

그리고 복소수에서 실수부를 추출할 때는 real 함수를 사용하고 허수부를 추출할 때는 imag 함수를 사용합니다.

  • 복소수에서 실수부와 허수부 추출
var f1 = real(c1) //실수부 추출
var f2 = imag(c1) //허수부 추출

complex 함수를 이용하여 복소수를 합성할 수도 있어요.

  • complex 함수로 복소수 합성
var c4 = complex(f1, f2) //complex 함수로 복소수 합성
[그림 2] 복소수 표현 예제 실행 화면