为什么我可以使用 StringBuilder 而无需在 Scala 中显式导入它?
Why can I use StringBuilder without explicitly importing it in scala?
我正在使用 scala 2.11.0
我注意到 StringBuilder 是在 scala.collection.mutable.StringBuilder 和 java.lang.StringBuilder 中定义的。我还注意到 scala 隐式导入 java.lang., scala., scala.Predef._
为什么我写
时用的是scala.collection.mutable.StringBuilder而不是java.lang.StringBuilder
val def = new StringBuilder
谢谢
嗯,因为所有 here 默认情况下都可用。即 scala._
默认可用。
在那个包对象中你可以看到:
type StringBuilder = scala.collection.mutable.StringBuilder
这就是为什么 new StringBuilder
需要 scala.collection.mutable.StringBuilder
而不是 java.lang.StringBuilder
您可以通过查看 package.scala
来检查 scala 导入了什么
第 74-45 行通过
导入 StringBuilder
type StringBuilder = scala.collection.mutable.StringBuilder
val StringBuilder = scala.collection.mutable.StringBuilder
Scala 使用类型别名来确保核心 Scala 类型无需导入即可使用。
这个 link 也会有所帮助 - Understanding what 'type' keyword does in Scala
请注意,由于类型别名声明在 Scala 包对象中,并且 scala._ 是隐式导入的,因此它会将类型别名声明带入每个编译单元的范围。
我正在使用 scala 2.11.0
我注意到 StringBuilder 是在 scala.collection.mutable.StringBuilder 和 java.lang.StringBuilder 中定义的。我还注意到 scala 隐式导入 java.lang., scala., scala.Predef._
为什么我写
时用的是scala.collection.mutable.StringBuilder而不是java.lang.StringBuilderval def = new StringBuilder
谢谢
嗯,因为所有 here 默认情况下都可用。即 scala._
默认可用。
在那个包对象中你可以看到:
type StringBuilder = scala.collection.mutable.StringBuilder
这就是为什么 new StringBuilder
需要 scala.collection.mutable.StringBuilder
而不是 java.lang.StringBuilder
您可以通过查看 package.scala
来检查 scala 导入了什么第 74-45 行通过
导入 StringBuildertype StringBuilder = scala.collection.mutable.StringBuilder
val StringBuilder = scala.collection.mutable.StringBuilder
Scala 使用类型别名来确保核心 Scala 类型无需导入即可使用。
这个 link 也会有所帮助 - Understanding what 'type' keyword does in Scala
请注意,由于类型别名声明在 Scala 包对象中,并且 scala._ 是隐式导入的,因此它会将类型别名声明带入每个编译单元的范围。