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 サイトの他の関連記事を参照してください。