1. ホーム
  2. go

[解決済み] Goではマップは値で渡されるのですか、それとも参照で渡されるのですか?

2022-05-30 13:38:17

質問

Goではマップは値で渡されるのですか、それとも参照で渡されるのですか?

関数を以下のように定義することは常に可能ですが、これはやりすぎでしょうか?

func foo(dat *map[string]interface{}) {...}

戻り値についても同じ質問があります。マップへのポインタを返すべきなのか、それともマップを値として返すべきなのか?

もちろん、不必要なデータコピーを避けるためです。

どのように解決するのですか?

このスレッドでは、あなたの答えが見つかります。

Golang。その参照を使用してマップにアクセスする

マップではポインタを使う必要はありません。

マップ型はポインタやスライスのような参照型です[1]。

もしSessionを変更する必要があれば、ポインタを使用することができます。

map[string]*Session

https://blog.golang.org/go-maps-in-action