Golang में स्लाइस (slice) से एलिमेंट कैसे हटाएं? सही तरीके और खतरे
सभी को नमस्ते! मैंने अभी-अभी Go सीखना शुरू किया है और स्लाइस के साथ काम करते समय एक समस्या का सामना किया। मुझे स्लाइस से इंडेक्स के अनुसार एलिमेंट हटाना है, लेकिन मुझे इसके लिए कोई built-in function नहीं मिल रहा।
यहाँ मेरे कोड का उदाहरण है:
```go
package main
import "fmt"
func main() {
fruits := []string{"apple", "banana", "cherry", "date"}
// "banana" (इंडेक्स 1) हटाना चाहता हूँ
// इसे सही तरीके से कैसे करें?
fmt.Println(fruits)
}
```
मैंने एलिमेंट को nil असाइन करने की कोशिश की, लेकिन यह इसे स्लाइस से नहीं हटाता, केवल वैल्यू को शून्य करता है:
```go
fruits[1] = "" // हटाने के रूप में काम नहीं करता
```
फिर मैंने बिना ज़रूरी एलिमेंट के स्लाइस (slice) बनाने की कोशिश की, लेकिन यह एक नया स्लाइस बनाता है, जबकि मूल स्लाइस वैसा ही रहता है:
```go
newFruits := append(fruits[:1], fruits[2:]...)
// अब fruits = ["apple", "cherry", "date", "date"] — अजीब है, है ना?
```
मूल स्लाइस भी बदल गया, और आखिरी एलिमेंट का डुप्लिकेट आ गया! ऐसा क्यों होता है? स्लाइस से एलिमेंट को सही तरीके से कैसे हटाएं ताकि