golang学习笔记(四):函数定义和使用、函数作用域

18 篇文章 0 订阅

golang 学习笔记

函数定义:定参函数、不定参函数

//func 函数名(参数列表)(返回值列表){
	//代码体
//}

// 定参函数
func add(s1 int, s2 int) {
	sum := s1 + s2
	fmt.Println(sum)
}

//...不定参 在函数调用时可以传递不定量(0-n)的参数
//不定参使用数据格式为切片
func sum(arr ...int) {
	//arr是一个数据的集合
	//fmt.Println(arr)

	//计算字符串个数
	//len("你好")
	//计算数据集合的个数
	//count := len(arr)
	//fmt.Println(count)
	
	sum := 0
	//_匿名变量  如果数据的值不需要接收  可以通过匿名变量来接收数据
	// for i,v := range arr {
	for _, v := range arr {
		//fmt.Println(i, v)
		sum += v
	}
	fmt.Println(sum)
}

// 函数返回值
//func 函数名(函数参数列表)(函数返回值类型)
func test4(a int, b int) (sum int) {
	sum = a + b
	//sum := a + b
	//return 表示函数的结束  如果函数有返回值return 可以将返回值返回
	return
}

//多个返回值
func test5(a int, b int) (sum int, sub int) {
	sum = a + b
	sub = a - b
	return
}

// 匿名函数
//如果定义匿名函数后在{}后面如果有()表示函数调用
	f := func(a int, b int) int {
		return a + b
	}

	v := f(10, 20)
	fmt.Printf("%T\n", f)
	fmt.Println(v)

// 递归函数
//递归函数  函数调用函数本身
//死递归
func demo4(n int) {

	//在函数中遇到return 表示函数的结束
	if n == 0 {
		return
	}

	demo4(n - 1)
	fmt.Println(n)
}

函数使用

func main() {
	a := 10
	b := 20
	//函数有多个返回值 要一一对应接收数据
	sum, sub := test5(a, b)
	fmt.Println(sum, sub)
}

函数作用域

//在函数外部定义的变量  成为全局变量
//作用域是在项目中整个文件去使用
//定义的全局变量名不能和其他文件中的全局变量重名
//全局变量名可以和局部变量名重名
//全局变量储存在内存的数据区
//如果全局变量定义时有值 存储在初始化数据区 没有值存储在为初始化数据区

//变量先定义后使用 在函数内部变量名是唯一的
//在函数内部定义的变量 成为局部变量
//局部变量的作用域在函数内部

//在go语言中会采用就进原则 如果在函数内部定义局部变量 和全局变量名重名 会使用局部变量
	
//修改全局变量的值
//如果全局变量的值修改 会影响其他位置使用全局变量的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值