tinygo/testdata/print.go
Ayke van Laethem 431e51b8a0 runtime: use dedicated printfloat32
It can be unexpected that printing a float32 involves 64-bit floating
point routines, see for example:
https://github.com/tinygo-org/tinygo/issues/1415

This commit adds a dedicated printfloat32 instead just for printing
float32 values. It comes with a possible code size increase, but only if
both float32 and float64 values are printed. Therefore, this should be
an improvement in almost all cases.

I also tried using printfloat32 for everything (and casting a float64 to
float32 to print) but the printed values are slightly different,
breaking the testdata/math.go test for example.
2020-10-02 11:26:22 +02:00

48 строки
880 Б
Go

package main
func main() {
// test basic printing
println("hello world!")
println(42)
println(100000000)
// check that this one doesn't print an extra space between args
print("a", "b", "c")
println()
// ..but this one does
println("a", "b", "c")
// print integers
println(uint8(123))
println(int8(123))
println(int8(-123))
println(uint16(12345))
println(int16(12345))
println(int16(-12345))
println(uint32(12345678))
println(int32(12345678))
println(int32(-12345678))
println(uint64(123456789012))
println(int64(123456789012))
println(int64(-123456789012))
// print float64
println(3.14)
// print float32
println(float32(3.14))
// print complex128
println(5 + 1.2345i)
// print interface
println(interface{}(nil))
// print map
println(map[string]int{"three": 3, "five": 5})
// TODO: print pointer
// print bool
println(true, false)
}