Golangにおける同じ名前のメソッド

Golang では 、同じパッケージ内に同じ名前のメソッドを 2 つ以上作成できますが、これらのメソッドのレシーバーは異なる型である必要があります。この機能は Go 関数では利用できません。つまり、同じパッケージ内に同じ名前のメソッドを作成することはできません。これを行おうとすると、コンパイラによってエラーが発生します。

Golangにおける同じ名前のメソッド

構文:

func(reciver_name_1 Type) method_name(parameter_list)(return_type){

// Code

}


func(reciver_name_2 Type) method_name(parameter_list)(return_type){

// Code

}

Golang の同じ名前のメソッドをよりよく理解するために、次の例を見てみましょう。

例1:

// Chương trình Go minh họa cách
// tạo các phương thức cùng tên
package main 

import "fmt"

// Tạo các cấu trúc
type student struct { 
	name string 
	branch string 
} 

type teacher struct { 
	language string 
	marks int
} 

// Các phương thức cùng tên nhưng với
// kiểu receiver khác nhau
func (s student) show() { 

	fmt.Println("Name of the Student:", s.name) 
	fmt.Println("Branch: ", s.branch) 
} 

func (t teacher) show() { 

	fmt.Println("Language:", t.language) 
	fmt.Println("Student Marks: ", t.marks) 
} 

// Hàm chính
func main() { 

	// Khởi tạo các giá trị
	// of the structures 
	val1 := student{"Rohit", "EEE"} 

	val2 := teacher{"Java", 50} 

	// Gọi các phương thức
	val1.show() 
	val2.show() 
} 

結果:

Name of the Student: Rohit
Branch:  EEE
Language: Java
Student Marks:  50

説明: 上記の例では、同じ名前 ( show())を持ちますが、受信タイプが異なる 2 つのメソッドがあります。ここで、最初のshow()メソッドにはstudent型のsが含まれ、 2 番目のshow()メソッドにはteacher型のtが含まれます。そして、main()関数では、それぞれの構造体変数を使用して両方のメソッドを呼び出します。同じレシーバー タイプでこれらのshow()メソッドを作成しようとすると、コンパイラはエラーをスローします。

例2:

// Chương trình Go minh họa cách
// tạo các phương thức cùng tên
// với receiver không phải struct
package main 

import "fmt"

type value_1 string 
type value_2 int

// Tạo hàm cùng tên với
// các kiểu receiver không phải struct khác nhau
func (a value_1) display() value_1 { 

	return a + "forGeeks"
} 

func (p value_2) display() value_2 { 

	return p + 298 
} 

// Hàm chính
func main() { 

	// Khởi tạo giá trị này
	res1 := value_1("Geeks") 
	res2 := value_2(234) 

	// Hiện kết quả
	fmt.Println("Result 1: ", res1.display()) 
	fmt.Println("Result 2: ", res2.display()) 
} 

結果:

Result 1:  GeeksforGeeks
Result 2: 532
Sign up and earn $1000 a day ⋙

Leave a Comment

Golangで定数を使う方法

Golangで定数を使う方法

Golang における Constant または Const とは何ですか? Go で定数を使用する際に知っておくべきことを以下に示します。

Golangのvolatile関数

Golangのvolatile関数

Go の可変長関数を使用すると、関数に可変数の引数を渡すことができます。 Golang の volatile 関数について知っておくべきことはすべてここにあります。

Golang の名前付き戻りパラメータ

Golang の名前付き戻りパラメータ

Golang では、名前付き戻りパラメータは、名前付きパラメータと呼ばれることがよくあります。 Golang では、関数のシグネチャまたは定義内で関数の戻りパラメータまたは結果に名前を付けることができます。

Goのキーワード

Goのキーワード

キーワード - キーワードは、何らかの内部プロセスに使用されるか、何らかの事前定義されたアクションを表す言語の単語です。 Golang のキーワードについて知っておくべきことを以下に示します。

Golangのデータ型

Golangのデータ型

データ型は、有効な Go 変数に格納できるデータの型を指定します。 Go 言語では、型は次の 4 つのカテゴリに分類されます。

Golangの関数の引数

Golangの関数の引数

Go は、引数を渡す方法として、値渡しと参照渡しという 2 つの主な方法をサポートしています。 Go では、デフォルトで値渡しが使用されます。

Golangで複数の値を返す関数

Golangで複数の値を返す関数

Go 言語では、return ステートメントを使用して関数から複数の値を返すことができます。つまり、関数では、 return ステートメントは複数の値を返すことができます。

GoのSwitch文

GoのSwitch文

Golang には他のほとんどのプログラミング言語と同様に switch ステートメントがあります。 Golang で switch ステートメントを使用する方法は次のとおりです。

Golangで選択文を使用する際に知っておくべきケース

Golangで選択文を使用する際に知っておくべきケース

この記事では、デッドロックを回避するために default case を使用する方法を学習します。しかし、まず、Golang の select コマンドを使用するときにデッドロックが発生するケースが何であるかを確認しましょう。

Golang の匿名構造体とフィールド

Golang の匿名構造体とフィールド

Golang の匿名構造体は、1 回限りの目的で使用される名前のない一時的な構造体ですが、匿名フィールドでは名前のないフィールドを埋め込むことができます。

GolangでRuneを使う方法

GolangでRuneを使う方法

Golang におけるルーン文字とは何ですか? Golang で Rune を使用するにはどうすればいいですか?この記事でその答えがわかります。

Golangで演算子を使う方法

Golangで演算子を使う方法

演算子を使用すると、オペランドに対してさまざまな種類の演算を実行できます。 Go 言語では、演算子はさまざまな機能に基づいて分類できます。

Golang の void 識別子

Golang の void 識別子

Golang では _(アンダースコア) は空白識別子と呼ばれます。識別子は、識別目的で使用されるプログラム コンポーネントのユーザー定義名です。

Golangで基本的なプログラムを作成する方法

Golangで基本的なプログラムを作成する方法

こんにちは世界!あらゆるプログラミング言語における最初の基本プログラムです。この最初のプログラムは、以下の手順に従って Golang で記述できます。

WindowsにGoをインストールする方法

WindowsにGoをインストールする方法

Golang は Windows に簡単にインストールできます。以下は、Windows に Golang をインストールするための詳細なステップバイステップ ガイドです。

2025年の学生に最適なノートパソコン

2025年の学生に最適なノートパソコン

学生は学習のために特定のタイプのノートパソコンを必要とします。専攻分野で十分なパフォーマンスを発揮できるだけでなく、一日中持ち運べるほどコンパクトで軽量であることも重要です。

Windows 10にプリンターを追加する方法

Windows 10にプリンターを追加する方法

Windows 10 にプリンターを追加するのは簡単ですが、有線デバイスの場合のプロセスはワイヤレス デバイスの場合とは異なります。

最高の精度でコンピューターのRAMをチェックし、RAMエラーをチェックする方法

最高の精度でコンピューターのRAMをチェックし、RAMエラーをチェックする方法

ご存知の通り、RAMはコンピューターにとって非常に重要なハードウェア部品であり、データ処理のためのメモリとして機能し、ノートパソコンやPCの速度を決定づける要因です。以下の記事では、WebTech360がWindowsでソフトウェアを使ってRAMエラーをチェックする方法をいくつかご紹介します。

通常のテレビとスマートテレビの違い

通常のテレビとスマートテレビの違い

スマートテレビはまさに世界を席巻しています。数多くの優れた機能とインターネット接続により、テクノロジーはテレビの視聴方法を変えました。

なぜ冷凍庫にはライトがないのに、冷蔵庫にはライトがあるのでしょうか?

なぜ冷凍庫にはライトがないのに、冷蔵庫にはライトがあるのでしょうか?

冷蔵庫は家庭ではよく使われる家電製品です。冷蔵庫には通常 2 つの部屋があり、冷蔵室は広く、ユーザーが開けるたびに自動的に点灯するライトが付いていますが、冷凍室は狭く、ライトはありません。

Wi-Fiの速度低下を引き起こすネットワーク混雑を解決する2つの方法

Wi-Fiの速度低下を引き起こすネットワーク混雑を解決する2つの方法

Wi-Fi ネットワークは、ルーター、帯域幅、干渉以外にも多くの要因の影響を受けますが、ネットワークを強化する賢い方法がいくつかあります。

Tenorshare Reibootを使ってデータ損失なくiOS 17からiOS 16にダウングレードする方法

Tenorshare Reibootを使ってデータ損失なくiOS 17からiOS 16にダウングレードする方法

お使いの携帯電話で安定した iOS 16 に戻したい場合は、iOS 17 をアンインストールして iOS 17 から 16 にダウングレードするための基本ガイドを以下に示します。

ヨーグルトを毎日食べると体に何が起こるのでしょうか?

ヨーグルトを毎日食べると体に何が起こるのでしょうか?

ヨーグルトは素晴らしい食べ物です。ヨーグルトを毎日食べるのは良いことでしょうか?ヨーグルトを毎日食べると、身体はどう変わるのでしょうか?一緒に調べてみましょう!

健康に最も良いお米の種類は何ですか?

健康に最も良いお米の種類は何ですか?

この記事では、最も栄養価の高い米の種類と、どの米を選んだとしてもその健康効果を最大限に引き出す方法について説明します。

朝時間通りに起きる方法

朝時間通りに起きる方法

睡眠スケジュールと就寝時の習慣を確立し、目覚まし時計を変え、食生活を調整することは、よりよく眠り、朝時間通りに起きるのに役立つ対策の一部です。

Rent Please! をプレイするためのヒント初心者向け大家シミュレーション

Rent Please! をプレイするためのヒント初心者向け大家シミュレーション

レンタルして下さい! Landlord Sim は、iOS および Android 向けのシミュレーション モバイル ゲームです。あなたはアパートの大家としてプレイし、アパートの内装をアップグレードして入居者を受け入れる準備をしながら、アパートの賃貸を始めます。

最新のバスルームタワーディフェンスコードとコードの入力方法

最新のバスルームタワーディフェンスコードとコードの入力方法

Bathroom Tower Defense Roblox ゲーム コードを入手して、魅力的な報酬と引き換えましょう。これらは、より高いダメージを与えるタワーをアップグレードしたり、ロックを解除したりするのに役立ちます。

変圧器の構造、記号、動作原理

変圧器の構造、記号、動作原理

変圧器の構造、記号、動作原理を最も正確な方法で学びましょう。

AIがスマートテレビを進化させる4つの方法

AIがスマートテレビを進化させる4つの方法

画質や音質の向上から音声制御まで、これらの AI 搭載機能により、スマートテレビはさらに優れたものになります。

ChatGPTがDeepSeekより優れている理由

ChatGPTがDeepSeekより優れている理由

当初、人々はDeepSeekに大きな期待を寄せていました。 ChatGPT の強力な競合製品として販売されている AI チャットボットは、インテリジェントなチャット機能とエクスペリエンスを約束します。