【发布时间】:2017-08-19 22:41:49
【问题描述】:
下面是我想要理解的代码:
object Tryouts extends App{
val studentIds= Future{
List("s1","s2","s3")
}
val details = studentIds zip(Future{List("Tim","Joe","Fin")}).map(x=>x.tail)
details.foreach(println)
Thread.sleep(1000)
}
问题:
val 详细信息 = studentIds zip(Future{List("Tim","Joe","Fin")}).map(x=>x.tail)
在这里,如果您注意到,我没有使用“。”在拉链之前,只是给一个空间。我猜可能是 。和空间都以相同的方式工作,并验证了一些堆栈溢出问题。应用地图之前的上述表达式将导致我成为 Future[(List[String],List[String])]。所以当我说
.map(x=x.tail) 应该在 IDE 中显示编译错误,因为尾部操作只能应用于列表而不是元组。但它实际上执行成功了。
使用“.”执行时的相同语句在 zip 函数之前是这样的:
val details = studentIds.zip(Future{List("Tim","Joe","Fin")}).map(x=>x.tail) 地图(x=>x.tail) 给出错误.
可能是什么原因?
【问题讨论】:
标签: scala future scala-collections