Scala中do..while循环是否仍支持?语法报错问题咨询
Scala中do..while循环的支持情况与语法问题解析
- Scala完全支持do..while循环,从早期版本到最新的Scala 3都保留了该语法,从未被移除过。
- 你遇到的报错属于语法错误,根源是Scala的自动分号推断机制在这个场景下失效:
var set = Set(1)这一行末尾没有分号,编译器会尝试将它与下一行的do合并解析,导致语句结构混乱。 - 修复方法很简单,只需在第一行末尾添加分号,让编译器明确语句边界:
var set = Set(1); do { set = set + (set.max + 1) } while (set.sum < 32) println(set.size)
- 补充:虽然do..while语法合法,但Scala更提倡函数式编程风格(比如用递归、集合操作或
Iterator替代命令式循环),不过如果业务场景需要,正确编写的do..while循环可以正常执行。
内容的提问来源于stack exchange,提问作者Machkour Oke
相关产品推荐
相关产品推荐

