scala导入是递归的吗?

gal*_*les 5 import scala

import mypack._
Run Code Online (Sandbox Code Playgroud)

我还需要吗?

import mypack.box.writer
import mypack.box.reader
Run Code Online (Sandbox Code Playgroud)

import mypack.box.parser.stringparser
Run Code Online (Sandbox Code Playgroud)

什么是搜索/谷歌的正确关键字?"递归"给了我压倒性的"尾递归"结果.

Dan*_*ral 10

不,Scala导入不是递归的.

包用于保持当前范围中的命名空间清洁.默认情况下导入所有子包将违背该规则.

另一方面,导入是相对的,所以你可以这样做:

import mypack._
import box.writer
import box.reader
import box.parser.stringparser
Run Code Online (Sandbox Code Playgroud)

有些人不喜欢这种风格,因为它有点容易出错.我不喜欢它,因为绝对和相对进口之间没有明显的区别.不过,它有时会有所帮助.