登录
首页 >  Golang >  Go问答

如何在scala中返回一个函数

来源:Golang技术栈

时间:2023-04-12 07:08:23 389浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《如何在scala中返回一个函数》,介绍一下golang,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

如何 在 Scala 中返回 [影响词法闭包](https://stackoverflow.com/questions/22288329/side- effecting-lexical-closure-vs-function-in-scala) 1的 ~~函数?~~ [](https://stackoverflow.com/questions/22288329/side-effecting-lexical- closure-vs-function-in-scala)

例如,我在 Go 中查看此代码示例:

...    
// fib returns a function that returns
// successive Fibonacci numbers.
func fib() func() int {
    a, b := 0, 1
    return func() int {
        a, b = b, a+b
        return b
    }
}
...
println(f(), f(), f(), f(), f())

打印 1 2 3 5 8

而且我不知道如何在 Scala 中编写相同的代码。

1. [Apocalisp](https://stackoverflow.com/questions/4262241/how-to-return-a- function-in-scala/4262932#4262932)评论后更正

正确答案

稍微短一点,你不需要回报。

def fib() = {
    var a = 0
    var b = 1
    () => { 
        val t = a;
        a = b
        b = t + b
        b
    }
}

今天关于《如何在scala中返回一个函数》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于golang的内容请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>