ホームページ  >  記事  >  バックエンド開発  >  Golangで設定するメソッドの詳細な紹介

Golangで設定するメソッドの詳細な紹介

PHPz
PHPzオリジナル
2023-04-03 11:51:10924ブラウズ

Go 言語は新興のプログラミング言語であり、その優雅さ、効率性、シンプルさが多くのプログラマーの注目を集めています。 Go 言語は、構文、プラットフォームのサポート、パフォーマンスなど多くの面で優れており、データ処理、同時実行性の高いプログラミング、Web プログラミングなどの分野で広く使用されており、非常に高い拡張性を備えています。

Golang に設定されているメソッドは多くの開発者にとって馴染みのない部分ですが、この記事では Golang に設定されているメソッドとその使い方について紹介します。

メソッド セットは、インターフェイスまたは構造に属するメソッドのコレクションです。 Go言語ではメソッドセットはバリューメソッドセットとポインタメソッドセットに分かれており、最大の違いは呼び出し元を変更できるかどうかです。

値メソッド セット内のメソッドは、呼び出される値を変更しません。つまり、値メソッド セット内のメソッドは、呼び出される値の状態を変更できません。構造体型を含むメソッド セットをレシーバーとして使用すると、値型が値メソッド セット内のメソッドを呼び出すことができます。

文字列を例に挙げると、Go 言語では文字列は読み取り専用のバイト スライスであり、その値は変更できません。文字列を変更したい場合は、ポインター メソッド セットを使用する必要があります。ポインタ メソッド set メソッドは、ポインタを介して変数の値を操作し、その状態を変更できます。構造体ポインター型を含むメソッド セットをレシーバーとして使用すると、ポインター型はポインター メソッド セット内のメソッドを呼び出すことができます。

Go 言語では、メソッド セットを定義すると、このメソッド セットは、同じメソッドと実装を持つすべてのインターフェイスと構造に適用できます。これにより、共有機能に簡単にアクセスできるようになります。

次に、値メソッド セットとポインター メソッド セットの使用例を示します。

package main

import (
    "fmt"
)

type User struct {
    Name string
    Age  int
}

func (u User) GetName() string {
    return u.Name
}

func (u *User) SetName(name string) {
    u.Name = name
}

func main() {
    user := User{
        Name: "Tom",
        Age:  18,
    }
    fmt.Println(user.GetName())
    user.SetName("Jerry")
    fmt.Println(user.GetName())
}

この例では、User 構造体を定義し、値メソッド セットに GetName メソッドを定義します。このメソッドはユーザーの名前を返します。

ポインター メソッド セットでは、ユーザー名を変更できる SetName メソッドを定義します。

main() 関数は、まず「Tom」という名前の User インスタンスを作成し、その名前を出力します。次に、ポインターを使用して SetName メソッドを呼び出し、その名前を「Jerry」に変更します。 GetName メソッドが呼び出されると、新しい名前「Jerry」が返されます。

値メソッド セットとポインター メソッド セットに加えて、メソッドのレシーバーとして空のインターフェイスを使用することもできます。空のインターフェイスを使用して実装されたメソッドは、任意のタイプの値に対して呼び出すことができます。

たとえば、空のインターフェイスをパラメータとして受け入れ、さまざまな種類の値を出力するメソッドを定義できます。

package main

import (
    "fmt"
)

func PrintValue(v interface{}) {
    fmt.Println(v)
}

func main() {
    PrintValue("Hello, World")
    PrintValue(123)
    PrintValue(3.142)
}

PrintValue メソッドは、空のインターフェイスをパラメータとして受け入れ、その値を出力します。 。

main() 関数では、PrintValue メソッドを 3 回呼び出し、それぞれ異なるタイプの値を渡します。文字列、整数、または浮動小数点数が渡されるかどうかに関係なく、PrintValue はそれらの値を出力できます。

概要:

  • メソッド セットは、インターフェイスまたは構造に属するメソッドのコレクションです。
  • メソッドセットはバリューメソッドセットとポインタメソッドセットに分かれており、最大の違いは呼び出し元を変更できるかどうかです。
  • Go 言語では、メソッド セットを定義すると、このメソッド セットは、同じメソッドと実装を持つすべてのインターフェイスと構造に適用できます。
  • 空のインターフェイスを使用して実装されたメソッドは、任意のタイプの値によって呼び出すことができます。

Golang は新興のプログラミング言語ですが、すでに多くの優れた機能を備えており、メソッド セットもその 1 つです。メソッド セットの使用をマスターすると、開発プロセス中に便利で効率的なサービスを提供できます。

以上がGolangで設定するメソッドの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。