gpt4 book ai didi

variables - 如何在 kotlin 中修改其范围之外的变量?

转载 作者:行者123 更新时间:2023-12-02 13:27:03 25 4
gpt4 key购买 nike

我知道在 Kotlin 中没有“非局部变量”或“全局变量”之类的东西,我正在寻找一种方法来使用以下函数在 Kotlin 的另一个“作用域”中修改变量:

class Listres(){
var listsize = 0
fun gatherlistresult(){


var listallinfo = FirebaseStorage.getInstance()
.getReference()
.child("MainTimeline/")
.listAll()
listallinfo.addOnSuccessListener {
listResult -> listsize += listResult.items.size
}


}
}
listsize 的值始终为 0(从 .addOnSuccessListener 范围内记录结果返回 8)很明显 listsize变量没有被修改。我在其他网站上看到了很多关于这个主题的不同帖子,但没有一个适合我的用例。
我只是想修改 listsize .addOnSuccessListener 内部打回来

最佳答案

此方法将始终返回 0 作为 addOnSuccessListener()方法执行完成后将调用监听器。 addOnSuccessListener()asynchronous 的回调方法操作,如果它只成功,您将获得值(value)。
您可以通过更改以下代码来获取值:

class Demo {

fun registerListResult() {
var listallinfo = FirebaseStorage.getInstance()
.getReference()
.child("MainTimeline/")
.listAll()
listallinfo.addOnSuccessListener {
listResult -> listsize += listResult.items.size
processResult(listsize)
}
listallinfo.addOnFailureListener {
// Uh-oh, an error occurred!
}
}

fun processResult(listsize: Int) {
print(listResult+"") // you will get the 8 here as you said
}
}

关于variables - 如何在 kotlin 中修改其范围之外的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63260930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com