首页 > 编程笔记 > Go语言笔记 阅读:4

Go语言函数嵌套调用(附带实例)

在 Go 语言中,函数可以嵌套调用。函数的嵌套调用就是在一个函数的函数体中调用另一个函数。

例如,在函数 myfun2() 中调用函数 myfun1(),代码如下:
package main

import "fmt"

func myfun1() { // 定义 myfun1() 函数
    fmt.Print("理想是人生的太阳")
}

func myfun2() { // 定义 myfun2() 函数
    // 在 myfun2() 函数中调用 myfun1() 函数
    myfun1()
}

func main() { // 调用 myfun2() 函数
    myfun2()
}
运行结果如下:

理想是人生的太阳

在上述代码中,在主函数中调用 myfun2() 函数,并在 myfun2() 函数中调用 myfun1() 函数,所以结果输出字符串“理想是人生的太阳”。

【实例】某歌唱比赛中有 3 个评委,在选手演唱完毕后,3 位评委分别给出分数,将 3 个分数的平均分作为该选手的最后得分。某参赛选手在演唱完毕后,3 位评委给出的分数分别为 95 分、97 分、96 分,通过函数的嵌套调用获取该参赛选手的最后得分。代码如下:
package main

import (
    "fmt"
    "strconv"
)

func getAverage(score1, score2, score3 float64) float64 { // 定义获取平均分的函数
    average := (score1 + score2 + score3) / 3 // 获取3个参数的平均值
    // 四舍五入取整数
    score, _ := strconv.ParseFloat(fmt.Sprintf("%.0f", average), 64)
    return score // 返回平均分
}

func getResult(score1, score2, score3 float64) { // 定义输出结果的函数
    // 输出3个评委打分
    fmt.Printf("3个评委打分:%v 分、%v 分、%v 分\n", score1, score2, score3)
    result := getAverage(score1, score2, score3) // 调用 getAverage()函数
    fmt.Printf("该选手最后得分:%v 分", result) // 输出选手最后得分
}

func main() {
    getResult(95, 97, 96) // 调用 getResult()函数
}
运行结果如下:

3个评委打分:95分、97分、96分
该选手最后得分:96分

相关文章