Java 言語関数と Go 言語関数の主な違いは次のとおりです: 関数の作成: Java では型を明示的に指定する必要がありますが、Go には型推論があります。パラメータの数: Java では固定、Go では変数 (可変長パラメータ)。戻り値の数: Java は 1 つだけを返しますが、Go は複数 (タプル) を返すことができます。値渡しと参照渡し: Java は値渡し、Go はデフォルトで参照渡しです。
Java関数とGo言語関数の違い
概要
JavaとGoという2つのプログラミング言語では関数処理に違いがあります。この記事では、Java 関数と Go 言語関数の主な違いを紹介します。
関数を作成する
Java では、以下に示すように、関数は public static
キーワードを使用して宣言されます。 public static
关键字,如下所示:
public static int sum(int a, int b) { return a + b; }
在 Go 语言中,函数声明以 func
func sum(a, b int) int { return a + b }Go 言語では、関数は
func 次のようにキーワードから始めます: <p><pre class='brush:go;toolbar:false;'>func sum(a, b int) int {
return a + b
}</pre><strong></strong>型推論</p>
<p></p> Java では、関数宣言でパラメーターの型と戻り値の型を明示的に指定する必要があります。 Go 言語には、パラメーターの値に基づいて自動的に型を推論できる型推論機能があります。 <p><pre class='brush:go;toolbar:false;'>func sum(numbers ...int) int {
total := 0
for _, num := range numbers {
total += num
}
return total
}</pre><strong></strong>パラメータの数</p>
<p></p> Java関数のパラメータの数は固定されている必要があります。 Go言語の関数のパラメータの数は可変であり、これを「可変長パラメータ」と呼びます。 <p><pre class='brush:go;toolbar:false;'>func minMax(numbers ...int) (int, int) {
min := numbers[0]
max := numbers[0]
for _, num := range numbers {
if num < min {
min = num
}
if num > max {
max = num
}
}
return min, max
}</pre><strong></strong>戻り値の数</p>
<p></p>Java関数は1つの値のみを返すことができます。 Go 言語の関数は、「タプル」と呼ばれる複数の値を返すことができます。 <p><pre class='brush:java;toolbar:false;'>// Java
public static void changeValue(int value) {
value = 100;
}</pre><strong></strong>値渡しと参照渡し</p>
<p></p>Java 関数は値渡しを使用します。つまり、パラメーター値のコピーが渡されます。 Go 言語関数はデフォルトで参照渡しを使用します。つまり、パラメーターの参照が渡されます。 <p><pre class='brush:go;toolbar:false;'>// Go
func changeValue(value *int) {
*value = 100
}</pre>errree<strong></strong>実際的なケース</p>
<p></p> 以下は、Java 言語関数と Go 言語関数の違いを示す、2 つの数値の合計を計算する関数です:<p><strong></strong>Java</p>
<p><pre class='brush:java;toolbar:false;'>public static int sum(int a, int b) {
return a + b;
}
public static void main(String[] args) {
int result = sum(10, 20);
System.out.println(result); // 输出:30
}</pre><strong></strong>Go 言語</p>
<p><pre class='brush:go;toolbar:false;'>func sum(a, b int) int {
return a + b
}
func main() {
result := sum(10, 20)
println(result) // 输出:30
}</pre></p>この例からわかるように、Java 関数のパラメータと戻り値の型は明示的に指定する必要がありますが、Go 言語関数は型推論と可変長パラメータをサポートしています。 🎜
以上がJava 関数と Go 言語関数の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。