ホームページ  >  記事  >  バックエンド開発  >  Go言語の仮パラメータはメモリを占有しますか?

Go言語の仮パラメータはメモリを占有しますか?

青灯夜游
青灯夜游オリジナル
2022-12-28 17:19:374712ブラウズ

仮パラメータ変数は、関数呼び出しがないときはメモリを占有せず、関数が呼び出されたときにのみメモリを占有し、呼び出しが完了するとメモリは解放されます。仮パラメータの正式名は「仮パラメータ」で、関数の定義時に使用されるパラメータですが、関数の定義時にはパラメータに実際のデータがないため、事前に仮パラメータにメモリが割り当てられません。関数が呼び出されます。その機能は、独立変数の型、およびプロセスにおける形式と役割を示すことです。

Go言語の仮パラメータはメモリを占有しますか?

このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。

関数は、単一関数または関連関数を実装するために使用される、整理された再利用可能なコード セグメントであり、アプリケーションのモジュール性とコードの再利用率を向上させることができます。

関数定義と関数呼び出し

関数はコード実行の論理構造を構成します。Go 言語では、関数の基本コンポーネントは次のとおりです。単語 func、関数名、パラメータ リスト、戻り値、関数本体、return ステートメント すべてのプログラムには多くの関数が含まれており、関数は基本的なコード ブロックです。

定義構文:

func 函数名(形参列表)(返回值类型列表) {
  函数体,通常会有return语句,返回值
}
  • 関数名: 関数の識別子。関数を見つけるために使用され、内部的には次のアドレスを指します。機能コード。

  • 仮パラメータリスト: 変数と型で構成されます

  • 戻り値の型リスト: 関数の戻り値の型、複数の戻り値複数指定する必要があります。

  • 関数本体: 関数を実装する特定のステートメント。 return ステートメント: 戻り値ステートメント

#関数呼び出し構文:

函数名(实参列表)

#関数パラメータ は、関数を呼び出すときに関数にデータを渡すために使用されます。

#実際のパラメータ、実際のパラメータ。呼び出し時に指定されるパラメータ。特定の実データを持つパラメータを指します。
  • 仮パラメータ、仮パラメータ。定義時に使用するパラメータ。これは、関数にはパラメータが必要ですが、パラメータの定義時には実際のデータが存在しないことを意味します。関数/メソッドは呼び出される前にメモリを割り当てません。その機能は、独立変数の型と形状、およびプロセス内での役割を記述することです。
  • 実パラメータと仮パラメータの関係: 仮パラメータには変数のみを使用できます (データ型を指定する必要があります)。実パラメータには変数、定数、または式を使用できます。

    実際のパラメータと仮パラメータの数と位置、およびそれらに対応するデータ型は一貫している必要があります。


    #呼び出されると、実際のパラメータを使用して仮パラメータ変数に値を代入するプロセスが発生します。これはパラメータ転送と呼ばれます。関数の実行中、仮パラメータには特定のデータが含まれ、仮パラメータは関数内で宣言された変数と同等です。パラメータの受け渡しは、値の受け渡しとアドレスの受け渡しの 2 つの方法に分けられます。アドレスを渡す場合、仮パラメータをポインタ型として定義し、呼び出し時にアドレスパラメータを取得する必要があります。

関数呼び出し時に実パラメータが配列名の場合、配列の最初のアドレスが仮パラメータに渡されます。
  • 実パラメータを仮パラメータに渡すことは一方向の転送です。仮パラメータ変数は、関数呼び出しがないときはメモリを占有せず、関数が呼び出されたときにのみメモリを占有します。通話が完了するとメモリが解放されます。
  • サンプル コード:
  • func funcTest(p1 int, p2 *int) {
      p1++
      *p2++
      fmt.Println(p1, *p2)
    }
    func main() {
      var (
        a1 = 42
        a2 = 42
      )
      funcTest(a1, &a2)
      // 参数赋值过程
      fmt.Println(a1, a2)
    }
上記の出力は

43 43
42 43

[関連する推奨事項:

Go ビデオ チュートリアル

プログラミング教育]

以上がGo言語の仮パラメータはメモリを占有しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。