闭包和无限生成器后面的课程会详细讲么

来源:6-1 高阶函数

矩阵中的比特

2023-08-08

老师提供的这个例子,问题chatgpt,提示这里使用了闭包和无限生成器。这部分课程的那一节会详细讲解?

fun fibonacci(): () -> Long {
var first = 0L
var second = 1L
return {
val next = first + second
val current = first
first = second
second = next
current
}
}

写回答

1回答

bennyhuo

2023-08-08

这个例子哪里不理解吗?“无限生成器”不是个什么固定的叫法,这里确实涉及了闭包,这里可以理解为就是捕获了外面的变量的lambda。如果哪里不理解可以提出来哈。

另外,chatgpt的答案经常不准确,需要注意分辨他的回复。
0
2
bennyhuo
回复
矩阵中的比特
记住的是first 和second。内存问题在Kotlin当中比较简单,返回的lambda是个函数类型的对象,当这个对象没有外部使用时,gc时会对其进行内存回收,这时捕获的first和second也会一起回收,不用担心泄露问题。
2023-08-08
共2条回复

学会Kotlin 突破开发语言瓶颈

如果有一门语言可以取代Java,那么它一定是Kotlin。

1760 学习 · 481 问题

查看课程