Heim >Backend-Entwicklung >Golang >Wie kann ich einem Int-Zeiger in Go sicher einen ganzzahligen Wert zuweisen?

Wie kann ich einem Int-Zeiger in Go sicher einen ganzzahligen Wert zuweisen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-01 07:11:12155Durchsuche

How to Safely Assign an Integer Value to an Int Pointer in Go?

Einen Int-Zeiger auf einen Int-Wert in Go setzen

Beim Zuweisen eines ganzzahligen Werts zu einem Int-Zeiger in Go muss unbedingt sichergestellt werden Der Zeiger selbst ist nicht Null. Dieser Fehler tritt auf, wenn versucht wird, einen Nullzeiger zu dereferenzieren, was zu einer Laufzeitpanik führt.

Die Lösung besteht darin, den Zeiger so zu initialisieren, dass er auf einen gültigen Speicherort zeigt. Dies kann mit der integrierten Funktion new() erreicht werden, die Speicher für ein neues int zuweist und einen Zeiger darauf zurückgibt. Hier ist ein Beispiel:

var guess *int
fmt.Println(reflect.TypeOf(guess))  // Outputs: *int
guess = new(int)                  // Allocates memory for a new int
*guess = 12345                    // Dereferences the pointer and sets the value to 12345
fmt.Println(guess)                 // Outputs: 0x10414028 (address of the allocated memory)

Diese Modifikation stellt sicher, dass der Zeiger auf einen zugewiesenen Speicherort zeigt, bevor er auf den Wert zugreift, auf den er zeigt. Alternativ können Sie der Zeigervariablen direkt die Adresse einer Variablen zuweisen:

value := 12345
guess = &value  // Assigns the address of value to guess pointer

In diesem Fall zeigt der Zeiger auf den Speicherort der Wertvariablen, sodass Sie den Wert über den Zeiger manipulieren können .

Denken Sie daran, dass sich die Änderung des Zeigerwerts durch den Zeiger auch auf den Wert der Variablen auswirkt, auf die er verweist. Umgekehrt ändert sich durch die direkte Änderung des Werts der referenzierten Variablen auch der Wert, auf den verwiesen wird. Diese duale Beziehung zwischen dem Zeiger und der referenzierten Variablen ist ein wichtiges Konzept, das es bei der Verwendung von Zeigern zu verstehen gilt.

Das obige ist der detaillierte Inhalt vonWie kann ich einem Int-Zeiger in Go sicher einen ganzzahligen Wert zuweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn