Wozu braucht man in Go die Funktionen make() und new()? Was ist der Unterschied?
Hallo zusammen! Ich habe vor kurzem angefangen, Go zu lernen, und kann einfach nicht verstehen, wozu zwei separate Funktionen zur Speicherzuweisung nötig sind: make() und new(). Angeblich erstellen beide Objekte, aber die Beispiele aus der Dokumentation haben mich nur verwirrt.
Hier ist, was ich versuche zu tun. Ich möchte einen Slice erstellen und sofort Elemente hinzufügen:
package main
import "fmt"
func main() {
// Versuche, einen Slice mit new zu erstellen
slice1 := new([]int)
fmt.Println(slice1) // Gibt aus: &[]
// Aber wie füge ich ein Element hinzu? slice1 = append(slice1, 1) funktioniert nicht
// Fehler: first argument to append must be slice; have *[]int
// Versuche, einen Slice mit make zu erstellen
slice2 := make([]int, 5)
fmt.Println(slice2) // Gibt aus: [0 0 0 0 0]
// Funktioniert, aber warum? Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen