関数のオーバーロードは、コンパイラーの実装の簡素化、コードの可読性の向上、および名前の競合の回避のため、Go 言語では関数のオーバーロードと同様の動作を実現するために使用できます。
Go 言語では、関数のオーバーロード (同じ名前の関数でパラメータのリストが異なること) が行われます。禁止。これにはいくつかの主な理由があります。
Go の fmt
パッケージの Printf を使用して、さまざまなタイプの値を出力する関数を作成するとします。
関数:
package main import "fmt" func main() { // 打印整数 fmt.Printf("%d\n", 123) // 打印浮点数 fmt.Printf("%.2f\n", 123.45) // 打印字符串 fmt.Printf("%s\n", "Hello, world!") }
Printf
関数はさまざまな値の型を処理できますが、実際には可変数のパラメーターを持つ単一の関数です。 Go には、さまざまな種類の引数リストの関数オーバーロードを作成するための構文がありません。
Go には関数のオーバーロードはありませんが、同様の動作を実現する方法がいくつかあります:
Printf
と同様に、可変数の引数を使用して関数を定義し、さまざまな型の引数を受け入れることができます。 以上がなぜ golang には関数のオーバーロードがないのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。