package main
import "fmt"
//定义一个名称叫 mixType 的类型
type mixType func(int, int) int
func main() {
var c mixType
var d mixType
c = add
d = sub
fmt.Printf("查看c变量的类型, %T\n", c)
//加法
a := c(5, 10)
fmt.Println(a)
//减法
b := d(100, 150)
fmt.Println(b)
}
func add(x, y int) int {
return x + y
}
func sub(x, y int) int {
return x - y
}
把 c变量 自定义类型 minType
打印c是什么类型
自定义类型2
package main
import "fmt"
//定义一个名称叫 divInt 的类型
type divInt int
func main() {
var c divInt
// divInt 也是int 类型
var a divInt = 3
var b int = 2
c := a + b
fmt.Println("c= , %c\n", c)
}
虽然 a 的divInt类型 也是int 但是a ,b 还是不同的数据类型,所以不能相加
所以如果想让两个值相加 需要转换a的类型
package main
import "fmt"
//定义一个名称叫 divInt 的类型
type divInt int
func main() {
// divInt 也是int 类型
var a divInt = 3
var b int = 2
c := int(a) + b
fmt.Println("c = ", c)
}
func add(x, y int) int {
return x + y
}
func sub(x, y int) int {
return x - y
}
类型作为函数参数
package main
import "fmt"
type divInt int
func mixB(x, y int, lx func(int, int) int) int {
return lx(x, y)
}
func main() {
// 把函数作为参数来运行
temp := mixB(2, 4, add)
tempSub := mixB(2, 4, sub)
fmt.Printf("temp类型 %T\n", temp)
fmt.Println("和=", temp)
fmt.Println("减=", tempSub)
}
func add(x, y int) int {
return x + y
}
func sub(x, y int) int {
return x - y
}