Golang返回函数和分配值

huangapple go评论106阅读模式
英文:

golang return function and assigned value

问题

我将为您翻译以下内容:

我打算学习'golang return function',但我感到非常困惑。
为什么这段代码返回"7"?
"y"是如何赋值的?

package main

import "fmt"

func maked(x float64) func(float64) float64 {

	fn := func(y float64) float64 {
		return x - y

	}
	return fn
}

func main() {
	test := maked(12)

	fmt.Println(test(5))
	// 输出 7
}
英文:

I am going to learn 'golang return function' but I'm seriously confused.
why this code return "7" ?
how the value is assigned to "y" ?

package main

import "fmt"

func maked(x float64) func(float64) float64 {

	fn := func(y float64) float64 {
		return x - y

	}
	return fn
}

func main() {
	test := maked(12)

	fmt.Println(test(5))
	// printed 7
}

答案1

得分: 0

test := maked(12) 返回一个如下所示的函数。

   fn := func(y float64) float64 {
        return 12 - y
    }

现在 test 拥有这个函数。所以 test(5) 会使用 y = 5 运行上述函数。
因此 12 - 5 = 7

英文:

test := maked(12) returns a function like below.

   fn := func(y float64) float64 {
        return 12 - y

    }

and now test have that function. So test(5) runs above function with y = 5.
so 12 - 5 = 7

huangapple
  • 本文由 发表于 2021年5月25日 21:19:49
  • 转载请务必保留本文链接:https://go.coder-hub.com/67688850.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定