Neue Funktion
Lektion 3 von 19 im Kurs Funktionen und Pointer in Golang von Coddy.
In den letzten Lektionen haben wir gelernt, dass Variablen Objekte oder Speicherbereiche im Speicher sind, deren Name auf diesen Bereich zeigt.
In Go haben wir eine Funktion, die unbenannten Speicherplatz im Speicher erstellt, und das tun wir mit Hilfe der Funktion new(). Die Syntax lautet wie folgt:
coddy := new(string)Hier haben wir ein Objekt mit dem Namen coddy und dem Typ string erstellt, und die Funktion new() gibt einen Pointer auf dieses Objekt (Speicherplatz) zurück.
Wenn wir den Namen ausgeben, erhalten wir die Speicheradresse dieses Bereichs:
fmt.Println("Value:", coddy)Das Ergebnis wird sein:
Value: 0xc000014070Wir können diesem Pointer wie folgt einen Wert neu zuweisen:
coddy := new(string)
*coddy = "Learn To Code with coddy"
fmt.Println("Value:", *coddy)Das Ergebnis wird sein:
Value: Learn To Code with coddyBeachten Sie, dass der Standardwert nicht nil ist, wenn wir Pointer mit der Funktion new() erstellen. Er hängt vom Typ ab, genau wie bei Variablen. Wenn der Typ int ist, ist der Standardwert 0; bei string ist es ein leerer String; und bei boolean ist es false.
Aufgabe
EinfachSchreiben Sie ein Programm, das eine Eingabe vom Benutzer entgegennimmt und Folgendes tut:
- Erstellt einen Pointer vom Typ int unter Verwendung der Funktion new().
- Gibt den Standardwert des Pointers aus.
- Weist den vom Benutzer eingegebenen Wert diesem Pointer zu.
- Gibt den Wert des Pointers nach der Zuweisung aus.
Probier es selbst
package main
import (
"fmt"
)
func main() {
// Benutzereingabe entgegennehmen. Nicht ändern!
var num int
fmt.Scanln(&num)
// Erstelle einen Zeiger vom Typ int unter Verwendung der Funktion new().
// Gibt den Standardwert des Zeigers aus.
fmt.Println("Default value of the pointer:", ?)
// Weist den vom Benutzer eingegebenen Wert diesem Zeiger zu
// Gibt den Wert des Zeigers nach der Zuweisung aus.
fmt.Println("Value of the pointer after assignment:", ?)
}
Alle Lektionen in Funktionen und Pointer in Golang
1Einführung
Einführung4Go Strings-Funktionen nachbauen
Strings in GolangJoin-FunktionContains-FunktionIndex-FunktionWiederholungs-Challenge #1