val list = List(4, 6, 7, 8, 9, 13, 14)
list.foreach(num ⇒ println(num * 4))
list should be()
我试图弄清楚它应该是什么,但没有完全得到答案。我认为它必须是空的或者像 Java 中的 void 函数,但我不知道 Scala 中的等价物。
最佳答案
Scala 中的
void 等效项是 Unit
,foreach
确实返回 Unit。
def foreach(f: (A) ⇒ Unit): Unit
所以正确的(并且无用的)测试将是这样的:
list should be(List(4, 6, 7, 8, 9, 13, 14))
还要考虑到,即使函数返回某些内容,您也不会捕获它,因此列表将保持不变。
如果您想检索函数的结果,您应该将其分配给另一个值,如下所示:(使用 map
来显示这一点):
val result = list.map(num ⇒ num * 4)
result should be(List(16, 24, 28, 32, 36, 52, 56))
关于scala - scala 中的 void 函数等效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47899827/