ホームページ > バックエンド開発 > Golang > golang の関数とメソッドを区別するにはどうすればよいですか?

golang の関数とメソッドを区別するにはどうすればよいですか?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2024-04-25 15:09:02
オリジナル
938 人が閲覧しました

Go 関数とメソッドの違いは、関数はパッケージの外部で定義され、レシーバーを受け取らないのに対し、メソッドは型内で定義され、最初のパラメーターとして型レシーバーを受け取ることです。

如何区分 golang 函数和方法?

#Go 関数とメソッドを区別するにはどうすればよいですか?

Go 言語では、関数とメソッドは似ていますが、それらの間には本質的な違いがあります。

Function

  • はパッケージのスコープ外で定義されており、直接呼び出すことができます。
  • 型レシーバーを受け入れません。
func Greet(name string) string {
    return "Hello, " + name + "!"
}
ログイン後にコピー

Method

  • は型内で定義されており、型インスタンスを通じてのみ呼び出すことができます。
  • 受信タイプ受信機を最初のパラメータとして指定します。
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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート