【发布时间】:2021-12-25 01:23:08
【问题描述】:
所以我是 scala 的新手,从我在网上找到的内容来看,scala 不会像其他语言那样更新变量。我正在尝试更改 while 循环中的变量,但它似乎没有改变。我有一个可变的 ArrayBuffer,它保存着键值对,声明如下:
val array1 = mutable.ArrayBuffer[Option[IndexedSeq[(K,V)]]]()
它存储基于始终为 int 的“K”值的排序数组。我正在尝试通过以下方式循环array1 的层:
var i=0
var counter = 0
while(array1(i).isDefined){
counter += 1
i += 1}
但是,这会导致无限循环,我怀疑 i 没有改变,我不知道为什么。
【问题讨论】:
-
那么代码是无效的Scala 代码,尝试在Scastie 中玩,直到您可以重现您遇到的问题,然后更新问题。
-
@LuisMiguelMejíaSuárez 很抱歉习惯使用 C 语言,总是搞砸。我编辑了问题。
-
无法重现:scastie.scala-lang.org/BalmungSan/C5w7SuU5TWyjHeTJrYIZmA/1 BTW、
counter和i是多余的。 - 无论如何,使用 Scala 作为 C 的意义何在?哦,好吧,无论如何,没关系。
标签: scala while-loop infinite-loop