scala - scala 中的 void 函数等效吗?

标签 scala foreach void scalatest

val list = List(4, 6, 7, 8, 9, 13, 14)
list.foreach(num ⇒ println(num * 4))
list should be()

我试图弄清楚它应该是什么,但没有完全得到答案。我认为它必须是空的或者像 Java 中的 void 函数,但我不知道 Scala 中的等价物。 enter image description here

最佳答案

Scala 中的

void 等效项是 Unitforeach 确实返回 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/

相关文章:

php - 为什么 foreach 循环输出两组 li 标签?

将 void 指针转换为结构体

scala 在操作元素时调用 mkString

具有非固定值类型集的 Scala DSL

scala - 将键/值对列表转换为 spark 中每个键的值列表

Java Void 类型 - 可能/允许的值?

java - C语言 : Difference between float and void in functions

scala - 为什么链接匹配表达式不能编译?

php - 使用PHP在while循环中使用动态输入字段数组更新MYSQL数据库

c# - 为什么 ControlCollection 不抛出 InvalidOperationException?