ホームページ > Java > &#&チュートリアル > Java 関数と Go 言語関数の違いは何ですか?

Java 関数と Go 言語関数の違いは何ですか?

王林
リリース: 2024-04-23 15:18:01
オリジナル
394 人が閲覧しました

Java 言語関数と Go 言語関数の主な違いは次のとおりです: 関数の作成: Java では型を明示的に指定する必要がありますが、Go には型推論があります。パラメータの数: Java では固定、Go では変数 (可変長パラメータ)。戻り値の数: Java は 1 つだけを返しますが、Go は複数 (タプル) を返すことができます。値渡しと参照渡し: Java は値渡し、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< で宣言されます。 /code> 次のようにキーワードから始めます:

func sum(a, b int) int {
    return a + b
}
ログイン後にコピー
ログイン後にコピー
型推論

Java では、関数宣言でパラメーターの型と戻り値の型を明示的に指定する必要があります。 Go 言語には、パラメーターの値に基づいて自動的に型を推論できる型推論機能があります。

func sum(numbers ...int) int {
    total := 0
    for _, num := range numbers {
        total += num
    }
    return total
}
ログイン後にコピー
パラメータの数

Java関数のパラメータの数は固定されている必要があります。 Go言語の関数のパラメータの数は可変であり、これを「可変長パラメータ」と呼びます。

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
}
ログイン後にコピー
戻り値の数

Java関数は1つの値のみを返すことができます。 Go 言語の関数は、「タプル」と呼ばれる複数の値を返すことができます。

// Java
public static void changeValue(int value) {
    value = 100;
}
ログイン後にコピー
値渡しと参照渡し

Java 関数は値渡しを使用します。つまり、パラメーター値のコピーが渡されます。 Go 言語関数はデフォルトで参照渡しを使用します。つまり、パラメーターの参照が渡されます。

// Go
func changeValue(value *int) {
    *value = 100
}
ログイン後にコピー
errree実際的なケース

以下は、Java 言語関数と Go 言語関数の違いを示す、2 つの数値の合計を計算する関数です:

Java

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
}
ログイン後にコピー
Go 言語

func sum(a, b int) int {
    return a + b
}

func main() {
    result := sum(10, 20)
    println(result) // 输出:30
}
ログイン後にコピー
この例からわかるように、Java 関数のパラメータと戻り値の型は明示的に指定する必要がありますが、Go 言語関数は型推論と可変長パラメータをサポートしています。 🎜

以上がJava 関数と Go 言語関数の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート