Der Ausdruck 3 / 10
ist ein untypisierter konstanter Ausdruck. Die Spezifikation sagt dies über konstante Ausdrücke aus
Wenn die Operanden einer binären Operation verschiedene Arten von untypisierten Konstanten sind, verwenden die Operation und für nicht-boolesche Operationen das Ergebnis die Art, die später in dieser Liste angezeigt wird: Ganzzahl, Rune, Gleitkomma, Komplex.
Da 3
und 10
untypisierte Ganzzahlkonstanten sind, ist der Wert des Ausdrucks eine untypisierte Ganzzahl ( 0
in diesem Fall).
Einer der Operanden muss eine Gleitkommakonstante sein, damit das Ergebnis zu einer Gleitkommakonstante wird. Die folgenden Ausdrücke ergeben die untypisierte Gleitkommakonstante 0.3
:
3.0 / 10.0
3.0 / 10
3 / 10.0
Es ist auch möglich, typisierte Konstanten zu verwenden. Die folgenden Ausdrücke werden als float64
Konstante ausgewertet 0.3
:
float64(3) / float64(10)
float64(3) / 10
3 / float64(10)
Wenn Sie einen der oben genannten Ausdrücke drucken, wird gedruckt 0.3
. Zum Beispiel fmt.Println(3.0 / 10)
druckt 0.3
.
fmt.Println(float64(3) / float64(10))
gibt0.3
.Wie von @Cerise und gemäß Spezifikation erwähnt
In diesem Fall muss nur der erste Operand ein Gleitkomma sein.
fmt.Println(3.0/10) fmt.Println(float64(3)/10) // 0.3 0.3
Beispiel
quelle