为什么转换为集合时,Scala for循环具有yield autobox整数?]

问题描述 投票:0回答:2
[在Scala 2.12中使用range并继续遍历元素时,为什么在生成整数时将整数装箱到java.lang.Integer中?下面的代码在堆上分配10,000个整数。

val boxedSeq = for (i <- 1 to 10000) yield i println("Done")

如果不打印而不打印,则不会创建整数。是泛型序列不能包含基元1的根本原因吗?

for (i <- 1 to 10000) println(i) println("Done")

10k Integers

Integers

[在Scala 2.12中使用range并继续遍历元素时,为什么在生成int时将它们装箱到java.lang.Integer中?下面的代码在堆上分配10,000个整数。 ...

scala for-loop autoboxing
2个回答
1
投票
  1. 循环正在创建类型为Range[Int]的集合,Java中没有Integer
© www.soinside.com 2019 - 2024. All rights reserved.