[解決済み] Goでマップをクリアするには?
2022-11-19 07:03:20
質問
c++の関数のようなものを探しています。
.clear()
プリミティブ型に対して
map
.
それとも、代わりに新しいマップを作成した方がいいのでしょうか?
更新: ご回答ありがとうございました。回答を見て、新しいマップを作成すると、望ましくない不整合が発生する場合があることに気づきました。次のような例を考えてみてください。
var a map[string]string
var b map[string]string
func main() {
a = make(map[string]string)
b=a
a["hello"]="world"
a = nil
fmt.Println(b["hello"])
}
というのは、やはりこれは
.clear()
関数は、オブジェクト内のコンテンツをクリアします。
どのように解決するのですか?
おそらく、新しいマップを作成する必要があります。同じマップが複数のコード部分によって参照され、1 つの部分が明示的に値を消去する必要があり、この変更が他のコード部分に見える場合を除き、既存のものを消去しようと悩む本当の理由はありません。
というわけで、おそらく
mymap = make(map[keytype]valtype)
何らかの理由で既存のマップをクリアする必要がある場合、これは非常に簡単です。
for k := range m {
delete(m, k)
}
関連
-
[解決済み] Goでマップにキーが含まれているかどうかを確認するには?
-
[解決済み] goで文字列の連結を効率的に行う方法
-
[解決済み] Goで複数行の文字列はどのように書くのですか?
-
[解決済み] ゼロ終端のバイト配列を文字列に変換するにはどうすればよいですか?
-
[解決済み】マップからキーのスライスを取得する
-
[解決済み] response.Bodyを閉じないとどうなりますか?
-
[解決済み] スライスを宣言するのか、スライスを作るのか?
-
[解決済み] go モジュール内のローカルパッケージへのアクセス (go 1.11)
-
[解決済み] あるプログラムの依存ファイルをすべて取得する方法
-
[解決済み] Goのコンパイル済み実行ファイルのサイズが巨大化する理由
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] time.Sleepを使わずにすべてのゴルーチンが終了するのを待つには?
-
[解決済み] response.Bodyを閉じないとどうなりますか?
-
[解決済み] 単一値コンテキストにおける複数値
-
[解決済み] reflectを使用して、構造体フィールドの値を設定するにはどうすればよいですか?
-
[解決済み] Goプログラムで静的リソースをバンドルする最良の方法は何ですか?
-
[解決済み] 現在時刻に時・分・秒を足す
-
[解決済み] テンプレートでマップを繰り返し処理する
-
[解決済み] Go で子プロセスの標準出力パイプをリダイレクトする
-
[解決済み] ユーザーのホームディレクトリを取得する
-
[解決済み] マップを含む値を順番に収集する