English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang 기본 튜토리얼

Golang 제어문

Golang 함수 & 메서드

Golang 구조체

Golang 슬라이스 & 배열

Golang 문자열(String)

Golang 포인터

Golang 인터페이스

Golang 병행

Golang 예외(Error)

Golang 기타Miscellaneous

Go 언어 함수

함수는 일반적으로 프로그램의 코드나 문장 블록으로, 같은 코드를 반복적으로 사용할 수 있게 하여 최종적으로 메모리와 시간을 절약하고, 더 중요한 것은 더 나은 코드 가독성을 제공합니다. 따라서 기본적으로 함수는 특정 작업을 수행하고 결과를 호출자에게 반환하는 문장 집합입니다. 함수는 결과를 반환하지 않고도 특정 작업을 수행할 수 있습니다.

함수 선언

함수 선언은 함수를 생성하는 방법 중 하나입니다.

문법:

func function_name(Parameter_list)(Return_type){
    // function body.....
}

이 함수의 선언은 다음과 같이 포함됩니다:

  • func:그것은 함수를 생성하는 데 사용되는 Go 언어의 키워드입니다.

  • function_name:그것은함수의 이름.

  • Parameter_list:함수 매개변수의 이름과 유형을 포함합니다.

  • Return_type:선택 사항입니다. 이는 함수가 반환하는 값의 유형을 포함합니다. 함수에서 return_type를 사용하면 함수에서 return 문을 사용해야 합니다.

함수 호출

함수 호출은 사용자가 함수의 기능을 사용하려고 할 때 완료됩니다. 함수의 기능을 사용하려면 함수를 호출해야 합니다. 아래의 예제와 같이, add()라는 이름을 가진 함수가 두 가지 매개변수를 가지고 있습니다. 이제 두 가지 매개변수를 가진 area()를 사용하여 호출합니다.12,10)을 메인 함수에서 호출합니다。

package main
import "fmt"
//area()는 직사각형의 면적을 찾기 위해 사용됩니다
//함수의 두 가지 매개변수, 즉 길이와 너비
func area(length, width int) int {
    Ar := length * width
    return Ar
}
func main() {
    //직사각형의 면적을 표시합니다
    //메서드 호출을 통해
    fmt.Printf("직사각형의 면적: %d", area(12, 10))
}

출력:

직사각형의 면적: 12저작권 ©

함수 매개변수

Go 언어에서 함수에 전달되는 매개변수는 실제 매개변수(실제 매개변수)라고 불리며, 함수가 받는 매개변수는 형식 매개변수(형식 매개변수)라고 합니다.

주의:기본적으로, Go 언어는 함수에 매개변수를 전달할 때 값을 호출하는 방법을 사용합니다.

Go 언어는 함수에 매개변수를 전달하는 두 가지 방법을 지원합니다:

  1. 값 호출:이 매개변수 전달 방법에서, 실제 매개변수의 값은 함수의 형식 매개변수에 복사됩니다. 그리고 두 가지 유형의 매개변수는 다른 저장 위치에 저장됩니다. 따라서 함수 내에서 이루어지는 어떤 변경도 호출자의 실제 매개변수에 반영되지 않습니다.

    package main 
       
    import "fmt"
       
    // 값을 교환하는 함수
    func swap(a, b int) int{ 
      
        var o int
        o = a 
        a = b 
        b = o 
         
       return o  
    } 
       
    func main() { 
     var p int = 10 
     var q int = 2저작권 © 
      fmt.Printf("p = %d 와 q = %d", p, q) 
       
     // call by values 
     swap(p, q) 
       fmt.Printf("\np = %d 와 q = %d", p, q) 
    }

    출력:

    p= 10 와 q = 2저작권 ©
    p= 10 와 q = 2저작권 ©
  2. 참조 호출을 통해:실제 매개변수와 형식 매개변수는 같은 위치를 가리키기 때문에, 함수 내에서 이루어지는 어떤 변경도 호출자의 실제 매개변수에 실제로 반영됩니다.

    package main
    import "fmt"
    //값을 교환하는 함수
    func swap(a, b *int) int {
        var o int
        o = *a
        *a = *b
        *b = o
        return o
    }
    func main() {
        var p int = 10
        var q int = 2저작권 ©
        fmt.Printf("p = %d 와 q = %d", p, q)
        //참조 호출
        swap(&p, &q)
        fmt.Printf("\np = %d 와 q = %d", p, q)
    }

    출력:

    p= 10 와 q = 2저작권 ©
    p= 2p= 10