28 lines
475 B
Go
28 lines
475 B
Go
package main
|
|
|
|
import "fmt"
|
|
|
|
type Number interface {
|
|
~int | ~int8 | ~int16 | ~int32 | ~int64 | ~uint | ~uint8 | ~uint16 |
|
|
~uint32 | ~uint64 | ~float32 | ~float64
|
|
}
|
|
|
|
func NumDoubler[T Number](val T) T {
|
|
return val * 2
|
|
}
|
|
|
|
func main() {
|
|
val := 10.3
|
|
fmt.Println(val)
|
|
val = NumDoubler(val)
|
|
fmt.Println(val)
|
|
val = NumDoubler(val)
|
|
fmt.Println(val)
|
|
val = NumDoubler(val)
|
|
fmt.Println(val)
|
|
val = NumDoubler(val)
|
|
fmt.Println(val)
|
|
val = NumDoubler(val)
|
|
fmt.Println(val)
|
|
}
|