Go-기능

함수는 함께 작업을 수행하는 문 그룹입니다. 모든 Go 프로그램에는 적어도 하나의 기능이 있습니다.main(). 코드를 별도의 함수로 나눌 수 있습니다. 코드를 여러 함수로 나누는 방법은 사용자에게 달려 있지만 논리적으로 각 함수가 특정 작업을 수행하도록 나누는 것이 좋습니다.

기능 declaration함수 이름, 반환 유형 및 매개 변수에 대해 컴파일러에 알려줍니다. 기능definition 함수의 실제 본문을 제공합니다.

Go 표준 라이브러리는 프로그램에서 호출 할 수있는 다양한 내장 함수를 제공합니다. 예를 들어, 함수len()다양한 유형의 인수를 취하고 유형의 길이를 반환합니다. 문자열이 전달되면 함수는 문자열의 길이를 바이트 단위로 반환합니다. 배열이 전달되면 함수는 배열의 길이를 반환합니다.

기능은 다음과 같이 알려져 있습니다. method, sub-routine, 또는 procedure.

함수 정의

Go 프로그래밍 언어에서 함수 정의의 일반적인 형식은 다음과 같습니다.

func function_name( [parameter list] ) [return_types]
{
   body of the function
}

Go 프로그래밍 언어의 함수 정의는 함수 헤더함수 본문으로 구성 됩니다. 다음은 함수의 모든 부분입니다.

  • Func − 함수 선언을 시작합니다.

  • Function Name− 함수의 실제 이름입니다. 함수 이름과 매개 변수 목록은 함께 함수 서명을 구성합니다.

  • Parameters− 매개 변수는 자리 표시 자와 같습니다. 함수가 호출되면 매개 변수에 값을 전달합니다. 이 값을 실제 매개 변수 또는 인수라고합니다. 매개 변수 목록은 함수의 매개 변수 유형, 순서 및 수를 나타냅니다. 매개 변수는 선택 사항입니다. 즉, 함수에 매개 변수가 없을 수 있습니다.

  • Return Type− 함수는 값 목록을 반환 할 수 있습니다. return_types는 함수가 반환하는 값의 데이터 유형 목록입니다. 일부 함수는 값을 반환하지 않고 원하는 작업을 수행합니다. 이 경우 return_type은 필수가 아닙니다.

  • Function Body − 함수의 기능을 정의하는 명령문 모음을 포함합니다.

다음 소스 코드는 max(). 이 함수는 두 개의 매개 변수 num1과 num2를 취하고 둘 사이의 최대 값을 반환합니다.

/* function returning the max between two numbers */
func max(num1, num2 int) int {
   /* local variable declaration */
   result int

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

함수 호출

Go 함수를 만드는 동안 함수가 수행해야하는 작업에 대한 정의를 제공합니다. 함수를 사용하려면 정의 된 작업을 수행하기 위해 해당 함수를 호출해야합니다.

프로그램이 함수를 호출하면 프로그램 제어가 호출 된 함수로 전송됩니다. 호출 된 함수는 정의 된 작업을 수행하고 return 문이 실행되거나 함수 종료 닫는 중괄호에 도달하면 프로그램 제어를 다시 기본 프로그램으로 반환합니다.

함수를 호출하려면 함수 이름과 함께 필수 매개 변수를 전달하기 만하면됩니다. 함수가 값을 반환하면 반환 된 값을 저장할 수 있습니다. 예를 들면-

package main

import "fmt"

func main() {
   /* local variable definition */
   var a int = 100
   var b int = 200
   var ret int

   /* calling a function to get max value */
   ret = max(a, b)

   fmt.Printf( "Max value is : %d\n", ret )
}

/* function returning the max between two numbers */
func max(num1, num2 int) int {
   /* local variable declaration */
   var result int

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

우리는 main () 함수와 함께 max () 함수를 유지하고 소스 코드를 컴파일했습니다. 최종 실행 파일을 실행하는 동안 다음 결과가 생성됩니다.

Max value is : 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

함수 인수

함수가 인수를 사용하려면 인수 값을 허용하는 변수를 선언해야합니다. 이러한 변수를formal parameters 기능의.

형식 매개 변수는 함수 내부의 다른 지역 변수처럼 작동하며 함수에 들어가면 생성되고 종료시 삭제됩니다.

함수를 호출하는 동안 인수를 함수에 전달할 수있는 두 가지 방법이 있습니다.

Sr. 아니요 통화 유형 및 설명
1 가치로 부르기

이 메서드는 인수의 실제 값을 함수의 형식 매개 변수에 복사합니다. 이 경우 함수 내에서 매개 변수를 변경해도 인수에 영향을주지 않습니다.

2 참조로 전화

이 메서드는 인수의 주소를 형식 매개 변수에 복사합니다. 함수 내에서 주소는 호출에 사용 된 실제 인수에 액세스하는 데 사용됩니다. 이는 매개 변수의 변경 사항이 인수에 영향을 미친다는 것을 의미합니다.

기본적으로 Go는 값별 호출을 사용하여 인수를 전달합니다. 일반적으로 함수 내의 코드는 함수를 호출하는 데 사용되는 인수를 변경할 수 없음을 의미합니다. 위의 프로그램은 max () 함수를 호출하는 동안 동일한 방법을 사용했습니다.

기능 사용

함수는 다음과 같은 방법으로 사용할 수 있습니다.

Sr. 아니요 기능 사용 및 설명
1 가치로서의 기능

함수는 즉석에서 생성 할 수 있으며 값으로 사용할 수 있습니다.

2 기능 폐쇄

함수 클로저는 익명 함수이며 동적 프로그래밍에서 사용할 수 있습니다.

방법

메서드는 수신기의 특수 기능입니다.