GO--函数--方法


一、函数(方法)

1.1、 格式

func 函数名称(形参列表)(返回值列表){
	函数体;
}

1.1.1 、无参数无返回值函数

func say() {
	fmt.Println("Hello World!!!")
}

1.1.2、有参数无返回值函数

func say(name string) {
	fmt.Println("Hello ", name)
}

1.1.3、无参数有返回值

func say() int {
	return 3
}

1.1.4、有参数有返回值

func sayOne(a int, b int) int {
	return a + b
}

1.2、Go语言中可以给函数的返回值指定名称

// 给返回值指定了一个名称叫做res, return时会自动将函数体内部res做为返回值
// 其实本质上就是提前定义了一个局部变量res,在函数体中使用res就是这个局部变量,返回的也是这个局部变量res
func clculate() (res int) {
	res = 1 + 1
	return
}

Go语言中的函数允许有多个返回值函数

func clculate(a int, b int) (res int, reOne int) {
	res = a + b
	reOne = a - b
	return
}


二、值的传递和引用传递

  • Go语言中,值类型有: int 系列、float系列、bool、string、数组、结构体
    • 值类型通常在栈中分配存储空间
    • 值类型作为函数参数传递、是拷贝传递
    • 在函数体中修改值类型,不会影响到函数外的值
    func main() {
    	num := 10
    	change(num)
    	fmt.Println(num) // 10
    }
    func change(num int) {
    	num = 998 // 函数体内部修改的值
    }  
    

2.1、Go语言中 引用类型 有: 指针、slice、map、channel

  • 引用类型通常在堆中分配存储空间
  • 引用类型作为函数参数传递,是引用传递
  • 在函数体内修改引用类型参数,会影响到函数外的值

三、匿名函数

  • 匿名函数也是函数的一种, 它的格式和普通函数一模一样,只不过没有名字而已

    • 普通函数的函数名称是固定的, 匿名函数的函数名称是系统随机的
  • 匿名函数可以定义在函数外(全局匿名函数),也可以定义在函数内(局部匿名函数), Go语言中的普通函
    数不能嵌套定义, 但是可以通过匿名函数来实现函数的嵌套定义

    • 全局匿名函数
//方式一
var a = func() {
	fmt.Println("hello world")
}

// 方式二

var (
	b = func() {
		fmt.Println("hello world2")
	}
)

func main() {
	a()
	b()
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lovely_red_scarf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值