Go语言函数嵌套调用(附带实例)
在 Go 语言中,函数可以嵌套调用。函数的嵌套调用就是在一个函数的函数体中调用另一个函数。
例如,在函数 myfun2() 中调用函数 myfun1(),代码如下:
【实例】某歌唱比赛中有 3 个评委,在选手演唱完毕后,3 位评委分别给出分数,将 3 个分数的平均分作为该选手的最后得分。某参赛选手在演唱完毕后,3 位评委给出的分数分别为 95 分、97 分、96 分,通过函数的嵌套调用获取该参赛选手的最后得分。代码如下:
例如,在函数 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分