go语言学习 22 自定义类型

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
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值