Go 언어 기능


함수는 작업을 수행하는 기본 코드 블록입니다.

Go 언어에는 최소한 main() 기능이 있습니다.

기능을 통해 서로 다른 기능을 나눌 수 있습니다. 논리적으로 각 기능은 지정된 작업을 수행합니다.

함수 선언은 컴파일러에게 함수의 이름, 반환 유형, 매개변수를 알려줍니다.

Go 언어 표준 라이브러리는 사용할 수 있는 다양한 기능을 내장하고 있습니다. 예를 들어, len() 함수는 다양한 유형의 인수를 허용하고 해당 유형의 길이를 반환할 수 있습니다. 문자열을 전달하면 문자열의 길이가 반환되고, 숫자를 전달하면 배열에 포함된 함수의 개수가 반환됩니다.


함수 정의

Go 언어 함수 정의 형식은 다음과 같습니다.

func function_name( [parameter list] ) [return_types] {
   函数体
}

함수 정의 분석:

  • func : func

  • function_name으로 시작하는 함수 선언: 함수 이름, 함수 이름 및 매개변수 목록이 함께 함수 서명을 구성합니다.

  • 매개변수 목록]: 매개변수 목록, 매개변수는 자리 표시자와 같습니다. 함수가 호출되면 값을 매개변수에 전달할 수 있으며, 이 값을 실제 매개변수라고 합니다. 매개변수 목록은 매개변수 유형, 순서 및 매개변수 수를 지정합니다. 매개변수는 선택사항입니다. 즉, 함수에 매개변수가 포함될 수도 없습니다.

  • return_types: 반환 유형, 함수는 값 목록을 반환합니다. return_types는 열 값의 데이터 유형입니다. 일부 함수에는 반환 값이 필요하지 않으며, 이 경우 return_types가 필요하지 않습니다.

  • 함수 본문: 함수 정의를 위한 코드 모음입니다.

예제

다음 예는 max() 함수의 코드입니다. 이 함수는 두 개의 정수 매개변수 num1과 num2를 전달하고 이 두 매개변수의 최대값을 반환합니다. 값:

/* 函数返回两个数的最大值 */
func max(num1, num2 int) int {
   /* 声明局部变量 */
   var result int

   if (num1 > num2) {
      result = num1
   } else {
      result = num2
   }
   return result 
}

함수 호출

함수를 만들 때 함수가 수행해야 할 작업을 정의하고 함수를 호출하여 지정된 작업을 수행합니다.

함수를 호출하고, 함수에 매개변수를 전달하고, 값을 반환합니다. 예:

package main

import "fmt"

func main() {
   /* 定义局部变量 */
   var a int = 100
   var b int = 200
   var ret int

   /* 调用函数并返回最大值 */
   ret = max(a, b)

   fmt.Printf( "最大值是 : %d\n", ret )
}

/* 函数返回两个数的最大值 */
func max(num1, num2 int) int {
   /* 定义局部变量 */
   var result int

   if (num1 > num2) {
      result = num1
   } else {
      result = num2
   }
   return result 
}

위의 예에서는 main() 함수에서 max() 함수를 호출하고 실행 결과:

最大值是 : 200

함수는 여러 값을 반환합니다

Go 함수는 여러 값을 반환할 수 있습니다. 예:

package main

import "fmt"

func swap(x, y string) (string, string) {
   return y, x
}

func main() {
   a, b := swap("Mahesh", "Kumar")
   fmt.Println(a, b)
}

위 예제의 실행 결과는 다음과 같습니다. 🎜>

Kumar Mahesh


함수 매개변수

함수가 매개변수를 사용하는 경우 변수는 함수의 형식 매개변수라고 할 수 있습니다.

형식 매개변수는 함수 본문 내에 정의된 지역 변수와 같습니다.

함수를 호출할 때 매개변수는 두 가지 방법으로 전달될 수 있습니다.

기본적으로 Go 언어는 값 전달을 사용합니다. 즉, 실제 매개변수는 호출 중에 영향을 받지 않습니다.


기능 사용법

函数用法描述
函数作为值函数定义后可作为值来使用
闭包闭包是匿名函数,可在动态编程中使用
方法方法就是一个包含了接受者的函数