定义新的类型:
package main
import "fmt"
type myint int
type mystring string
func main() {
var a myint
a = 100
fmt.Println(a) // 100
fmt.Printf("%T\n", a) // main.myint
}
类型别名:
注意:在main包不能定义类型别名的新方法,可以通过定义为新类型在添加方法
package main
import "fmt"
type myint = int // 这里不是重新定义新的数据类型,只是给int起别名,和int可以通用
type mystring = string
func main() {
var a myint
a = 100
fmt.Println(a) // 100
fmt.Printf("%T\n", a) // int
}
定义函数:
package main
import (
"fmt"
"strconv"
)
type myfun func(int, int) string
func fun1() myfun {
fun := func(a, b int) string {
s := strconv.Itoa(a) + strconv.Itoa(b)
return s
}
return fun
}
func main() {
res := fun1()
s := res(1, 3)
fmt.Println(s)
}