Go 语言中的函数详解(Let‘s Go 十九)

Go语言函数定义与使用

在前面几篇文章,接触到的最多的是main函数。Go 如同c/c++语言一样,对于声明函数也有属于自己的一套规则。

func functionName(param paramType,[param1 param1Type,...])(returnVal valType,[rerutnVal1 return1Type,...]) {
    
}

Go当中定义函数使用关键字func,后跟方法名(functionName)参数列表(param paramType)以及函数返回值,且函数返回可以返回多个值。

package main

import (
	"fmt"
)

func fib(n int) int {
	if n == 0 {
		return 0
	}
	if n == 1 {
		return 1
	}

	return fib(n-1) + fib(n-2)
}

func main() {

	num := fib(10)
	fmt.Printf("10的斐波那契值: %d \n", num)
}

在这里插入图片描述

若一组形参或返回值有相同的类型,其实是不需要为每个参数都带上类型的,只需在这组相同类型的形参或返回值最后一个形参或返回值带上类型即可,这段话看起来似乎有点绕,其实意思就是下面这般。

func myFunc(a,b,c int) (d,e,f int){ ... }
func myFunc(a int,b int,c int) (d int,e int,f int){ ... }
func myFunc(a,b,c int) (int,int,int){ ... }

以上三种写法是等同的,返回值如果定义了返回参数,在函数体最后一行需要加上return

package main

import (
	"fmt"
)

func cacul(num1, num2 int) (sum, diff int) {
	sum = num1 + num2
	diff = num1 - num2
	return
}

func cacul2(num1 int, num2 int) (sum int, diff int) {
	sum = num1 + num2
	diff = num1 - num2
	return
}

func cacul3(num1, num2 int) (int, int) {
	sum := num1 + num2
	diff := num1 - num2
	return sum, diff
}

func main() {

	sum, diff := cacul(15, 10)
	fmt.Printf("调用第一个函数,sum = %d,diff= %d\n", sum, diff)

	sum2, diff2 := cacul2(25, 30)
	fmt.Printf("调用第二个函数,sum2 = %d,diff2 = %d\n", sum2, diff2)

	sum3, diff3 := cacul3(35, 40)
	fmt.Printf("调用第三个函数,sum3 = %d,diff3 = %d\n", sum3, diff3)
}

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

甄齐才

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

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

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

打赏作者

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

抵扣说明:

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

余额充值