golang 함수와 메소드의 차이점은 무엇입니까?

WBOY
풀어 주다: 2024-04-25 12:51:02
원래의
1082명이 탐색했습니다.

함수와 메서드는 Go에서 코드 블록을 정의하는 두 가지 방법입니다. 함수 범위는 전역 또는 패키지 전용이고 메서드 범위는 전용 유형입니다. 함수에는 수신자 매개변수가 없지만 메소드에는 유형 멤버에 액세스할 수 있는 수신자 매개변수가 있습니다. 실제 사례에서는 구조를 사용하지 않은 평균 계산 기능과 구조를 이용한 가중 평균 계산 방법을 보여줍니다.

golang 函数与方法的区别是?

Go에서 함수와 메서드의 차이점

소개
Go 언어에서 함수와 메서드는 코드 블록을 정의하는 두 가지 방법입니다. 유사점이 많지만 근본적인 차이점도 있습니다. 이 글에서는 Go의 함수와 메소드의 차이점을 살펴보고 실제 예제를 제공합니다.

Function
함수는 입력에 대해 일부 작업을 수행하고 출력을 반환하는 유형 독립적인 코드 블록입니다. 함수는 func 키워드와 함수 이름, 매개변수 목록, 반환 값 유형을 사용하여 정의됩니다. func 关键字定义,后面跟着函数名、参数列表和返回值类型。

示例:

func sum(a, b int) int {
    return a + b
}
로그인 후 복사

调用函数:

result := sum(10, 20)
로그인 후 복사

方法
方法是附加到类型上的函数。它允许该类型的实例访问和操作该方法的实现。方法使用接收器参数定义,后面跟着方法名、参数列表和返回值类型。

示例:

type Person struct {
    Name string
}

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

调用方法:

p := Person{"John"}
greeting := p.Greet()
로그인 후 복사

差异

예: 예: rrreee통화 방법: rrreeeDifference
特性函数方法
定义func<receiver type> <method name>
func Avg(numbers []float64) float64 {
    sum := 0.0
    for _, num := range numbers {
        sum += num
    }
    return sum / float64(len(numbers))
}
로그인 후 복사
함수 호출:
type WeightedAvg struct {
    Numbers []float64
    Weights []float64
}

func (w WeightedAvg) Avg() float64 {
    weightedSum := 0.0
    for i := range w.Numbers {
        weightedSum += w.Numbers[i] * w.Weights[i]
    }
    totalWeight := 0.0
    for _, w := range w.Weights {
        totalWeight += w
    }
    return weightedSum / totalWeight
}
로그인 후 복사
메서드
메서드는 유형에 연결된 함수입니다. 이를 통해 해당 유형의 인스턴스가 메소드 구현에 액세스하고 조작할 수 있습니다. 메소드는 수신자 매개변수를 사용하여 정의되고 그 뒤에 메소드 이름, 매개변수 목록, 반환 값 유형이 옵니다.
특성 함수 메소드 th> th>

Definitionfunc

<receiver type> <method name>

Scope

글로벌, 패키지 프라이빗
유형 프라이빗

수신기 매개변수

없음 🎜🎜 예 🎜🎜🎜🎜 액세스 유형 멤버 🎜🎜 아니요 🎜🎜 예 🎜🎜🎜🎜🎜 🎜 실제 사례 🎜 🎜🎜🎜평균 계산🎜 🎜 구조를 사용하지 않고 부동 소수점 숫자 배열의 평균을 계산하는 함수를 작성할 수 있습니다. 🎜rrreee🎜🎜가중치를 사용하여 평균 계산🎜🎜가중치를 기준으로 평균을 계산해야 하는 경우 다음 방법을 사용할 수 있습니다. 🎜rrreee 🎜🎜결론🎜🎜Go 언어에서는 함수와 메서드가 서로 다른 역할을 합니다. 함수는 일반적인 작업을 수행하는 유형 독립적인 코드 블록입니다. 메소드는 해당 유형의 인스턴스를 조작하고 액세스하는 데 사용되는 유형에 연결된 함수입니다. 명확하고 유지 관리가 가능한 Go 코드를 작성하려면 함수와 메서드의 차이점을 이해하는 것이 중요합니다. 🎜

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

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