侧边栏壁纸
博主头像
秋码记录

一个游离于山间之上的Java爱好者 | A Java lover living in the mountains

  • 累计撰写 123 篇文章
  • 累计创建 256 个标签
  • 累计创建 41 个分类

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

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

在前面几篇文章,接触到的最多的是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)
}

img

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

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)
}

img

Go 语言中的 goto、break 以及 continue 语句(Let's Go 十八)
« 上一篇 2022-10-01
Go 语言中的函数变量与匿名函数(Let's Go 二十)
下一篇 » 2022-10-04

相关推荐