[解決済み] ローカル構造体へのポインタを返す
2023-02-23 08:15:41
質問
このような構成のコードサンプルを見かけることがあります。
type point struct {
x, y int
}
func newPoint() *point {
return &point{10, 20}
}
私はC++のバックグラウンドを持っており、それは私のためのエラーのように思える。このような構成のセマンティックは何ですか?新しいポイントは、スタックまたはヒープ上に割り当てられますか?
どのように解決するのですか?
Goはポインタのエスケープ解析を行います。ポインタがローカル スタックをエスケープしている場合 (この場合はエスケープしています)、オブジェクトはヒープ上に割り当てられます。ローカル関数をエスケープしない場合、コンパイラはスタック上に自由に割り当てることができます (ただし、保証はありません。ポインタのエスケープ分析が、ポインタがこの関数にローカルなままであることを証明できるかどうかに依存します)。
関連
-
[解決済み] 構造体変数をコンソールに表示するには?
-
[解決済み】Goの構造体のスタックとヒープ割り当て、およびガベージコレクションとの関連性
-
[解決済み] 「<type>はインターフェースへのポインターであり、インターフェースではない」混乱
-
[解決済み] バリューレシーバー vs. ポインターレシーバー
-
[解決済み] ログをファイルに書き出す方法
-
[解決済み] os.Exit()とpanic()はいつ使うのか?
-
[解決済み] ゴルーチンからの戻り値をキャッチする
-
[解決済み] テキストファイルの読み方を教えてください。重複
-
[解決済み] 複数のゴルーチンが1つのチャンネルをリッスンする
-
[解決済み] Goのintとint64の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ゴルーチンの停止方法
-
[解決済み] 単一値コンテキストにおける複数値
-
[解決済み] Goプロジェクトの賢明なレイアウト方法とは [終了しました]。
-
[解決済み] 構造体の値をマップの値として設定すると、"cannot assign" エラーが発生するのはなぜですか?重複
-
[解決済み] golangのスライスで要素を検索する方法
-
[解決済み] go ウェブサーバーを使って静的な html ファイルを提供するにはどうすればよいですか?
-
[解決済み] golangでISO 8601の時刻を変換するには?
-
[解決済み] 匿名インターフェイスを埋め込んだ構造体の意味?
-
[解決済み] go get で「インポートパスが認識されない」。
-
[解決済み] Goでシステムコマンドの出力を得るには?