Mehr als ein Zeichen im Runenliteral in Go
Frage:
Ein neuer Programmierer Beim Versuch festzustellen, ob eine Zahl ungerade oder gerade ist, ist ein Fehler aufgetreten. Sie erhalten die Fehlermeldung „mehr als ein Zeichen im Runenliteral“. Können Sie die Grundursache dieses Problems erklären?
Antwort:
In Go werden einfache Anführungszeichen für Runenliterale verwendet, die einzelne Unicode-Zeichen darstellen. Im bereitgestellten Code verwendet der Programmierer einfache Anführungszeichen für den Formatbezeichner in der Funktion fmt.Printf, die stattdessen in doppelte Anführungszeichen gesetzt werden sollten. Hier ist der korrigierte Code:
package main import "fmt" func main() { var a int fmt.Printf("Enter the number: ") fmt.Scanf("%d", &a) if a%2 == 0 { fmt.Println("%d Is even number", a) } else { fmt.Println("%d is odd number", a) } }
Erklärung:
In Go ist %d ein Formatbezeichner, der zum Drucken von Ganzzahlen verwendet wird. Wenn es jedoch in einfache Anführungszeichen gesetzt wird, interpretiert Go es als Runenliteral. Da Runen nur ein einzelnes Zeichen darstellen können, ist die Verwendung von %d in einfachen Anführungszeichen falsch.
Um dieses Problem zu beheben, müssen doppelte Anführungszeichen um den Formatbezeichner verwendet werden, um anzuzeigen, dass es sich um ein Zeichenfolgenliteral und nicht um eine Rune handelt wörtlich. Zeichenfolgenliterale können mehrere Zeichen enthalten, einschließlich Formatbezeichnern.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „mehr als ein Zeichen im Runenliteral', wenn ich in Go nach ungeraden oder geraden Zahlen suche?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!