> 백엔드 개발 > Golang > golang 함수와 메소드를 구별하는 방법은 무엇입니까?

golang 함수와 메소드를 구별하는 방법은 무엇입니까?

WBOY
풀어 주다: 2024-04-25 15:09:02
원래의
920명이 탐색했습니다.

Go 함수와 메소드의 차이점은 함수는 패키지 외부에서 정의되고 수신자를 수신하지 않는 반면, 메소드는 유형 내에 정의되고 유형 수신자를 첫 번째 매개변수로 수신한다는 것입니다.

如何区分 golang 函数和方法?

Go 함수와 메소드를 어떻게 구별하나요?

Go 언어에서는 함수와 메소드가 비슷해 보이지만 본질적인 차이점이 있습니다.

Function

  • 은 패키지 범위 외부에서 정의되며 직접 호출할 수 있습니다.
  • 유형 수신기를 허용하지 않습니다.
func Greet(name string) string {
    return "Hello, " + name + "!"
}
로그인 후 복사

Methods

  • 는 유형 내에서 정의되며 유형 인스턴스를 통해서만 호출할 수 있습니다.
  • 수신 유형 수신기를 첫 번째 매개변수로 사용합니다.
type Person struct {
    Name string
}

func (p Person) Greet() string {
    return "Hello, " + p.Name + "!"
}
로그인 후 복사

실용 사례

다음 코드는 함수와 메서드의 차이점을 보여줍니다.

package main

import "fmt"

func main() {
    // 调用函数
    greeting1 := Greet("Alice")
    fmt.Println(greeting1) // 输出:Hello, Alice!

    // 实例化类型并调用方法
    alice := Person{Name: "Alice"}
    greeting2 := alice.Greet()
    fmt.Println(greeting2) // 输出:Hello, Alice!
}

func Greet(name string) string {
    return "Hello, " + name + "!"
}

type Person struct {
    Name string
}

func (p Person) Greet() string {
    return "Hello, " + p.Name + "!"
}
로그인 후 복사

위 내용은 golang 함수와 메소드를 구별하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿