Golang type
和C#
中的typedef
相似, Go中人为type
取的别名是新的类型, 同样需要强转
Example one
type INT int //为int取一个别名
func main() {
var num INT = 30
//main.INT(包名.别名) , 30
fmt.Printf("num的类型是%T, val = %d", num, num)
}
Example two
type FUNC func(int, int) int //为指定格式的函数取别名
func method(param FUNC, a int, b int) int {
return param(a, b)
}
func main() {
i := method(func(a int, b int) int {
return a * b
}, 10, 20)
fmt.Println(i)
}
Example three
type integer int
func main() {
num1 := 10
//var num2 integer = num1 //错误
var num2 integer = integer(num1)
fmt.Printf("%v", num2)
}