क्या Go में map पर iteration के दौरान उससे elements को हटाना सुरक्षित है?
सभी को नमस्ते! मैंने अभी Go सीखना शुरू किया है और map के साथ काम करते समय एक अप्रत्याशित व्यवहार का सामना किया। मुझे map के सभी elements पर जाना है और उन्हें हटाना है जो एक निश्चित शर्त को पूरा नहीं करते। अन्य भाषाओं (जैसे Python) में, iteration के दौरान dictionary को बदलना अक्सर errors या undefined behavior का कारण बनता है। मैंने यह कोड लिखा:\n\n```go\npackage main\n\nimport "fmt"\n\nfunc main() {\n m := map[int]string{\n 1: "apple",\n 2: "banana",\n 3: "cherry",\n 4: "date",\n }\n\n for k, v := range m {\n if v == "banana" || v == "date" {\n delete(m, k)\n }\n }\n\n fmt.Println(m)\n}\n```\n\nकोड काम करता है और आउटपुट देता है `map[1:apple 3:cherry]`। लेकिन मुझे यकीन नहीं है कि यह सुरक्षित है। क्या इससे panic, data race या कुछ और हो सकता है?