9.2. 프로그램언어 고(Go)의 함수 호출하기

프로그램언어 고(Go)에서의 기본적인 함수 호출 방법

프로그램언어 고(Go)에서 함수를 호출하는 기본적인 방법은 다음과 같습니다.

package main

import "fmt"

func hello() {
    fmt.Println("Hello Go!") 
}

func main() {
    hello() 
}

위의 코드에서 보이는 것처럼, Go언어에서 함수를 정의할 때는 func 키워드를 사용합니다.

예를 들어 위 코드의 3번째 줄에 있는 것처럼,

func hello() {

}

와 같은 식으로 함수를 정의할 수 있습니다. 여기서 hello가 함수의 이름입니다.

그리고 함수를 호출할 때는 함수 이름 뒤에 ()를 붙여서 호출합니다.

위 코드의 9번째 줄을 보면,

hello()

와 같이 함수 이름 뒤에 ()를 붙임으로써 hello 함수를 호출하고 있습니다.

이처럼 Go언어에서는 함수를 정의한 후, 함수 이름 뒤에 ()를 붙여서 함수를 호출할 수 있습니다.

함수 내부에 있는 코드는 함수가 호출될 때 실행되며, 함수가 종료되면 제어흐름이 다시 함수를 호출한 지점으로 돌아갑니다.

이러한 과정으로 프로그램의 흐름을 제어할 수 있습니다.

프로그램언어 고(Go)에서의 매개변수를 가진 함수 호출하기

프로그램언어 고(Go)에서 매개변수를 가진 함수를 호출할 때는 다음과 같이 합니다.


package main

import "fmt"

// 매개변수 x, y를 받는 add 함수
func add(x int, y int) int {
    return x + y
}

func main() {

    // add 함수 호출 시 매개변수 전달
    result := add(10, 20) 
    fmt.Println(result)
}

위 코드에서 add 함수는 int 형 매개변수 x와 y를 받아서 두 수의 합을 반환합니다.

main 함수에서는 add(10, 20)과 같이 실제 값을 매개변수로 전달하며 함수를 호출합니다.

이렇게 매개변수를 전달하고 값을 반환받아 결과를 obtained할 수 있습니다.

함수 정의 시 매개변수 이름(x, y)을 지정하고,
함수 호출 시 실제로 사용할 변수나 값을 전달하는 것이 중요합니다.

매개변수가 여러 개 일수록, 순서도 맞춰야 하고 값의 개수도 일치해야 합니다.

이렇게 고(Go)에서는 다른 언어와 유사하게 매개변수 전달을 통해 함수 기능을 확장할 수 있습니다.

프로그램언어 고(Go)에서의 반환값이 있는 함수 호출하기

프로그램언어 고(Go)에서 반환값이 있는 함수를 호출하려면 함수 정의 시 반환 타입을 명시해주어야 합니다. 예를 들어 다음과 같이 반환값이 있는 함수를 정의할 수 있습니다.

func add(x int, y int) int {
    return x + y
}

이 함수는 두 개의 int형 파라미터 x와 y를 받아서 이 둘을 더한 값을 int형으로 반환합니다.

이 함수를 호출할 때는 반환값을 변수에 할당하여 사용할 수 있습니다.

result := add(1, 2)
fmt.Println(result) // 3

add 함수를 호출하고 반환되는 int값을 result 변수에 할당하였습니다.
이렇게 할당된 반환값은 출력이나 다른 연산에 사용할 수 있습니다.

반환값을 바로 사용하지 않고 버릴 수도 있습니다.

add(1, 2) // 반환값 무시

위 코드처럼 반환값을 변수에 할당하지 않고 버려도 문제 없습니다.

함수 정의 시 반환값이 명시되어 있다면 꼭 반환문을 통해 값을 반환해주어야 합니다.

func add(x int, y int) int {
    x + y // 반환문 없음
}

위 코드처럼 반환문이 없으면 컴파일 에러가 발생합니다.

무조건 반환문이 필요한 것은 아니고, 반환 타입을 명시하지 않는 함수도 정의할 수 있습니다.

func printHello() {
    fmt.Println("Hello") 
}

위 함수처럼 반환값이 없다면 반환문이 필요 없습니다.

이렇게 Golang에서는 함수 정의 시 반환 타입을 명시하고, 호출 시 반환값을 받아서 사용할 수 있습니다. 반환값 처리는 함수의 핵심기능 중 하나이므로 잘 이해하고 사용할 수 있어야 합니다.

프로그램언어 고(Go)에서의 다중 반환값이 있는 함수 호출하기

프로그램언어 고(Go)에서는 하나의 함수가 여러 값을 반환할 수 있습니다. 이를 다중 반환(multi-return)이라고 합니다.

다중 반환을 사용하면 하나의 함수에서 여러 결과값을 동시에 반환할 수 있어 편리합니다.


package main

import "fmt"

func calc() (int, int) {
    return 10, 20 
}

func main() {
    a, b := calc()
    fmt.Println(a, b) 
}

위의 예제코드에서 calc() 함수는 int형을 반환하는데, 반환값이 두 개입니다.

func 키워드 뒤에 반환타입을 여러 개 적어주면 되는데 이 경우 int, int로 적어주었습니다.

이 함수를 호출할 때는 다중 반환값을 받을 변수를 여러 개 선언해주면 됩니다.

main() 함수에서 a, b 변수를 이용해 결과값을 받았습니다.

다중 반환시 변수의 개수와 타입이 함수의 반환값 개수와 타입과 일치해야 정상동작합니다.

결과적으로 calc() 함수가 반환하는 두 int 값이 a, b 변수에 각각 저장되어 출력됩니다.

이처럼 고(Go)의 다중 반환을 사용하면 하나의 함수에서 복수의 결과값을 반환할 수 있어 편리하고 가독성도 높아집니다.

함수 기능을 확장할 때 유용하게 사용할 수 있습니다.

프로그램언어 고(Go)에서의 함수를 변수에 할당하여 호출하기

프로그램언어 고(Go)에서 함수를 변수에 할당하여 호출하는 방법은 다음과 같습니다.

package main

import "fmt"

// 함수 정의
func hello() {
    fmt.Println("Hello World") 
}

func main() {
    // 함수를 변수에 할당
    hi := hello

    // 할당된 함수 호출
    hi() 
}

위의 예제코드에서 hello() 함수를 정의하고 있습니다.

그리고 main() 함수 내에서 hi 변수를 선언하고 이 변수에 hello() 함수를 할당하고 있습니다.

이렇게 함수를 변수에 할당하면 변수를 함수처럼 호출할 수 있습니다.

예제에서 hi() 를 호출하면 사실상 hello() 함수가 호출되는 것입니다.

이러한 기능을 사용하면 함수 포인터를 사용하거나, 익명 함수를 다루기 위한 함수형 프로그래밍을 할 때 유용합니다.

추가로, 변수에 할당된 함수를 파라미터로 전달하거나 함수의 리턴 값으로 사용할 수도 있습니다.

이를 통해 고급 함수 기능을 구현할 수 있습니다.

예를 들어, 일급 함수(First-class function)이나 고계 함수(Higher-order function) 기능을 구현할 때 함수를 변수에 할당하는 것이 중요합니다.

이상으로 고(Go)언어에서 함수를 변수에 할당하여 호출하는 방법에 대해 간단하게 설명드렸습니다.

코드 예제와 함께 보다 자세한 설명을 제공했기를 바랍니다.

Leave a Comment