Files
learning_go/ch8/2/ch8_2.go
2026-02-21 14:09:13 +03:00

39 lines
522 B
Go

package main
import (
"fmt"
"strconv"
)
type Printable interface {
Number | NumberFloat
fmt.Stringer
}
type Number struct {
val int
}
func (num Number) String() string {
return string(strconv.Itoa(num.val))
}
type NumberFloat struct {
val float64
}
func (num NumberFloat) String() string {
return string(strconv.Itoa(int(num.val)))
}
func Print[T Printable](num T) {
fmt.Println(num)
}
func main() {
firstTest := Number{val: 5}
secondTest := NumberFloat{val: 7.2}
Print(firstTest)
Print(secondTest)
}