comnic's Dev&Life

[Golang] 4. 함수(Function) 본문

Golang

[Golang] 4. 함수(Function)

comnic 2023. 12. 29. 08:04
반응형

4. 함수

4.1 함수 정의와 호출

Go에서 함수는 코드를 모듈화하고 재사용 가능한 단위로 분리하는데 사용됩니다. 함수를 정의하고 호출하는 기본적인 예제는 다음과 같습니다.

package main

import "fmt"

// add 함수 정의 (매개변수 a, b는 정수형, 반환값은 정수형)
func add(a, b int) int {
    return a + b
}

// greet 함수 정의 (매개변수 name은 문자열, 반환값은 문자열)
func greet(name string) string {
    return "Hello, " + name + "!"
}

func main() {
    // 함수 호출
    result := add(3, 7)
    fmt.Println("Result of addition:", result)

    greeting := greet("Alice")
    fmt.Println(greeting)
}

 

4.2 다양한 매개변수와 반환 값

Go에서 함수는 여러 개의 매개변수와 반환 값을 가질 수 있습니다. 다양한 형식의 함수를 살펴봅시다.

package main

import "fmt"

// multiply 함수 정의 (매개변수 a, b는 정수형, 반환값은 정수형)
func multiply(a, b int) int {
    return a * b
}

// divide 함수 정의 (매개변수 a, b는 정수형, 반환값은 정수형과 나머지)
func divide(a, b int) (int, int) {
    quotient := a / b
    remainder := a % b
    return quotient, remainder
}

func main() {
    // 다양한 매개변수와 반환 값 사용
    product := multiply(4, 5)
    fmt.Println("Product:", product)

    quotient, remainder := divide(10, 3)
    fmt.Println("Quotient:", quotient)
    fmt.Println("Remainder:", remainder)
}

 

4.3 익명 함수와 클로저

익명 함수는 이름이 없는 함수로, 주로 간단한 로직을 즉석에서 정의하여 사용할 때 유용합니다. 클로저는 함수와 그 함수가 참조하는 변수를 함께 포함한 개념입니다.

package main

import "fmt"

func main() {
    // 익명 함수 (변수에 할당하여 사용)
    add := func(a, b int) int {
        return a + b
    }

    result := add(3, 7)
    fmt.Println("Result of addition:", result)

    // 클로저 예제
    base := 10
    addWithBase := func(x int) int {
        return x + base
    }

    resultWithBase := addWithBase(5)
    fmt.Println("Result with base:", resultWithBase)
}

이러한 함수의 다양한 활용을 통해 코드를 모듈화하고 재사용성을 높일 수 있습니다. 함수는 Go 언어에서 중요한 개념 중 하나이며, 유연하고 강력한 기능을 제공합니다.

반응형
Comments