>백엔드 개발 >Golang >golang 메소드 및 함수

golang 메소드 및 함수

WBOY
WBOY원래의
2023-05-14 14:01:08563검색

Golang은 메소드와 기능의 개념을 포함하여 정교한 디자인이 많이 포함된 현대 프로그래밍 언어입니다. 메소드와 함수는 Golang 프로그래머가 반드시 알아야 할 기본 개념입니다. 이 기사에서는 유사점과 차이점을 자세히 설명합니다.

1. 함수

함수는 Golang 프로그램의 기본 구성 요소 중 하나입니다. 함수 이름, 매개변수 목록, 반환 값 유형 및 함수 본문으로 구성됩니다.

func 函数名(参数列表)(返回值类型){
     函数体
}

다음은 간단한 예입니다.

func sum(a int, b int) int {
     return a + b
}

이 함수는 sum이라고 합니다. int 유형의 두 매개변수 a와 b가 필요하며 반환 값 유형은 int입니다. 함수 본문에는 a와 b의 합계를 반환하는 return 문이 포함되어 있습니다.

함수는 다음과 같이 호출됩니다.

c := sum(1, 2) //c的值为3

2. 메서드

메서드는 특정 유형과 관련된 함수입니다. Golang의 접근 방식은 유형별 함수 정의를 자신의 유형에 배치하여 이러한 함수가 해당 유형의 모든 인스턴스에서 호출되도록 하는 것입니다.

메서드는 함수와 유사하게 정의되지만 추가 수신자 매개변수가 있습니다. 호출할 값 유형을 메소드에 알려줍니다. 메소드의 일반 구문은 다음과 같습니다.

func (接收器变量 接收器类型) 方法名(参数列表)(返回值类型){
     函数体
}

간단한 예는 다음과 같습니다.

type Person struct {
     Name string
     Age  int
}

func (p Person) SayHello() string {
     return "Hello, my name is " + p.Name
}

func main() {
     p := Person{Name: "Tom", Age: 18}
     fmt.Println(p.SayHello()) //输出结果为 "Hello, my name is Tom"
}

이 예에서는 Person 유형의 구조를 정의하고 여기에 SayHello 메소드를 정의합니다. 이 메서드는 수신자 유형을 Person 유형으로 설정하여 해당 메서드가 모든 인스턴스에서 호출됨을 나타냅니다.

p라는 Person 인스턴스를 만든 다음 SayHello 메서드를 호출합니다. 인스턴스 이름을 나타내는 문자열을 반환합니다.

3. 함수와 메소드의 차이점

    함수는 어디에서나 호출할 수 있는 코드 조각인 반면, 메소드는 특정 유형과 관련된 코드입니다.
  1. 메서드는 자신이 속한 객체를 통해 호출해야 하지만, 함수는 직접 호출할 수 있습니다.
  2. 메서드는 객체의 비공개 데이터에 액세스할 수 있지만 함수는 액세스할 수 없습니다.
  3. 메소드에는 수신자 매개변수가 있지만 함수에는 없습니다.
  4. 메서드는 재정의될 수 있지만 함수는 재정의될 수 없습니다.
4. 요약

Golang 메소드와 함수는 Golang 프로그램 구축의 기본 구성 요소입니다. 함수는 어디서나 누구나 호출할 수 있는 독립적이고 재사용 가능한 코드 블록입니다. 반면, 메소드는 특정 유형과 연관된 코드 블록이며 해당 유형의 객체를 통해서만 호출할 수 있습니다.

방법과 기능을 학습함으로써 우리는 더 나은 프로그래밍과 개발을 할 수 있습니다. Golang에 대해 자세히 알아보려면 관련 Golang 문서와 튜토리얼을 읽어보세요.

위 내용은 golang 메소드 및 함수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.