当前位置: 首页 > news >正文

Go入门之函数

func subn1(x, y int) int {
	sub := x - y
	return sub
}

函数参数简写,可以省略前边的,和后边的类型一样

func addn1(x ...int) int {
	sum := 0
	for _, v := range x {
		sum += v
	}
	return sum
}

求可变参数的核,表示传参的个数不确定

func addn1(x int, y ...int) int {
	sum := 0
	for _, v := range y {
		sum += v
	}
	x=sum
	return x
}

返回值命名法

func calc1(x, y int) (sum int, sub int) {
	sum = x + y
	sub = x - y
	return
}

自定义函数类型

func add(x, y int) int {
	return x + y
}


func main() {
	var c calc
	c = add
	fmt.Printf("%T\n", c)
	fmt.Println(c(10, 5))

	
}

函数作为另一个函数的参数并且函数作为返回值

func add(x, y int) int {
	return x + y
}

type calcType func(int, int) int

func calc1(x, y int, cb calcType) int {
	return cb(x, y)
}
func main() {

	sum := calc1(5, 10, add)
	fmt.Println(sum)
}

匿名自执行函数

var fn = func(x, y int) int {
		return x * y
	}
	fmt.Println(fn(2, 3)) 

也可以接收参数

func(x, y int) {
		fmt.Println(x + y)
	}(10, 20)

函数的闭包,函数里面嵌套一个函数,最后返回里面的函数。可以作用局部变量常驻内存,不污染全局

********************

defer 延迟执行改语句 panic抛出一个异常 ,recover接异常 必须在defer中

func f() {
	defer func() {
		err := recover()
		if err != nil {
			fmt.Println(err)
		}
	}()
	panic("异常")
}

相关文章:

  • Redis初识
  • 微软宣布 Windows 11 将不再免费升级:升级需趁早
  • Python入门笔记3
  • Mybatis-Plus
  • 数据结构:栈和队列
  • 灵办AI助手Chrome插件全面评测:PC Web端的智能办公利器
  • 学习总结2.14
  • 科普:Docker run的相关事项
  • Redis缓存雪崩、击穿、穿透
  • 第一章 Java面向对象进阶
  • 利用AFE+MCU构建电池管理系统(BMS)
  • 设计模式相关知识点
  • 驱动开发、移植
  • 2025最新智能优化算法:改进型雪雁算法(Improved Snow Geese Algorithm, ISGA)求解23个经典函数测试集,MATLAB
  • MYSQL总结(1)
  • 鸿道Intewell操作系统:赋能高端装备制造,引领国产数控系统迈向新高度
  • C++中为什么有了tuple还需要pair?
  • 【C++】 Flow of Control
  • 同花顺C++面试题及参考答案
  • 【Elasticsearch】查询规则_query_rules
  • 鸿蒙电脑正式亮相,五年布局积累超2700项核心专利
  • 线下无理由退货怎样操作?线上线下监管有何不同?市场监管总局回应
  • 巴基斯坦外交部:印度侵略行径侵犯巴主权
  • 安顺市原副市长、市公安局原局长顾长华任贵州省民委副主任
  • 公安部:“五一”假期全国社会大局稳定,治安秩序良好
  • 贵州黔西游船倾覆事故70名落水人员在院救治,均为轻伤