golangメソッドマニュアル

WBOY
リリース: 2023-05-16 12:26:38
オリジナル
1028 人が閲覧しました

Golang は開発者に広く愛されているプログラミング言語であり、その効率性、シンプルさ、学習と使用の容易さで多くの開発者の支持を集めています。 Golang では、メソッドは構造体型の操作を可能にする関数です。

この記事では、Golang メソッドの使用法をよりよく習得できるように、メソッド定義、呼び出し、配信、インターフェイスなどの詳細を含む Golang メソッドについて紹介します。

1. メソッドの定義

Golang では、メソッドは構造タイプに関連付けられた特別なタイプの関数です。つまり、メソッドの受信側は特定のメソッドを指す必要があります。構造タイプ。メソッド定義の基本的な構文は次のとおりです。

func (r ReceiverType) methodName(parameterList) (resultList) {

// 方法体
ログイン後にコピー

}

このうち、ReceiverType は、メソッド レシーバ タイプは、ポインタ タイプを含む任意のタイプにすることができます。ReceiverType がポインタ タイプの場合、メソッドの呼び出し時に自動的に逆参照されます。methodName はメソッドの名前を指します。parameterList は、メソッドによって受け取られたパラメータ リストを指します。 if パラメータを渡す必要がない場合は省略可能; resultList はメソッドの戻り値リストを参照し、戻り値が必要ない場合は省略可能。

たとえば、Print という名前のメソッドを定義できます。このメソッドは、Person 型へのポインタを受け取り、パラメータや戻り値を渡す必要はありません。

type Person struct {

name string
age int
ログイン後にコピー

}

func (p *person) Print() {

fmt.Printf("Name: %s, Age: %d
ログイン後にコピー

", p.name, p.age)
}

上記たとえば、メソッド Print は person 型に属し、そのメソッドは person 型へのポインターにバインドされているため、このメソッドは person 型のインスタンスを通じて呼び出すことができます。

#Golang では、メソッド呼び出しは関数呼び出しと非常によく似ています。関数名の前にレシーバーを追加するだけです。たとえば、Person 型のインスタンスを作成し、出力のために Print メソッドを呼び出すことができます。

func main() {

p := &Person{
    name: "Tom",
    age:  18,
}
p.Print()
ログイン後にコピー

}

上記の例では、Person タイプを指すポインター p を作成し、その Print メソッドを呼び出して出力します。メソッド呼び出しではレシーバーを明示的に渡す必要はなく、Golang は自動的に呼び出し元をレシーバーに変換します。たとえば、上記の Print メソッドを関数にカプセル化できます:

func Printperson(p *person) {

p.Print()
ログイン後にコピー

}

その後、次の関数を使用できます。 PrintPersonal 関数として パラメータは別の関数に渡されます:

func Processperson(f func(*person)) {

p := &Person{
    name: "Tom",
    age:  18,
}
f(p)
ログイン後にコピー

}

最後に、Processperson 関数を呼び出すことができます。

func main() {

ProcessPerson(PrintPerson)
ログイン後にコピー

}

上記の例では、Processperson 関数はパラメーターとして関数を受け取ります。関数にパラメータとして渡される Person 型のインスタンス。Printperson 関数は Person 型へのポインタをパラメータとして受け取り、関数の型に準拠するため、Printperson 関数をパラメータとして Processperson 関数に渡すことができ、出力は成功しました。

四,メソッド インターフェイス

Golang のインターフェイスは非常に重要な概念です。メソッドのコレクションを定義します。これらのメソッドを実装する型はインターフェイスに準拠していると見なされます。 。したがって、Golang では、メソッドを使用してインターフェイスを実装できます。

たとえば、構造を文字列に変換するための String という名前のメソッドを定義する Stringer という名前のインターフェイスを作成できます。

type Stringer Interface {

String() string
ログイン後にコピー

}

次に、パーソン タイプに String メソッドを定義して、パーソンを文字列に変換します。

func (p *person) String() string {

return fmt.Sprintf("Name: %s, Age: %d", p.name, p.age)
ログイン後にコピー

}

最後に、Person タイプの Stringer インターフェイスを実装し、fmt パッケージの Println 関数を出力に使用できます。

func main() {

p := &Person{
    name: "Tom",
    age:  18,
}
fmt.Println(p)
ログイン後にコピー
}

上記の例では、Person タイプは Stringer インターフェイスを実装し、それを出力用の文字列に変換します。

概要

この記事では、Golang メソッドの定義、呼び出し、配信、インターフェイスなどの詳細を紹介し、読者が Golang メソッドの使用方法をより深く理解するのに役立つことを願っています。なお、メソッドを使用する場合は、メソッドの呼び出し方法や受け渡し方法だけでなく、受信者の型やメソッドの定義などにも注意が必要です。これらの詳細をマスターすることによってのみ、Golang メソッドの利点を最大限に活用し、コードの効率と保守性を向上させることができます。

以上がgolangメソッドマニュアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!