8.11 練習問題
1.
code:go
package main
import (
"fmt"
)
type Integer interface {
~int | ~int8 | ~int16 | ~int32 | ~int64 | ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~float32 | ~float64
}
func multiplicationT Integer(i T) T {
return i * 2
}
func main() {
fmt.Print(multiplication(22.3))
}
2.
code:go
package main
import (
"fmt"
"strconv"
)
type Printable interface {
fmt.Stringer
~int | ~float64
}
type PrintInt int
func (pi PrintInt) String() string {
return strconv.Itoa(int(pi))
}
type PrintFloat float64
func (pf PrintFloat) String() string {
return fmt.Sprintf("%f", pf)
}
func PrintItT Printable(t T) {
fmt.Println(t)
}
func main() {
var i PrintInt = 20
PrintIt(i)
var f PrintFloat = 10.23
PrintIt(f)
}