英文:
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
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论