在 Scala 中的函数中导入时,包将被导入多少次

Man*_*jan 1 import scala

我在Scala 中有以下函数代码片段:

def sqrtplus1(x: Int) = {
  import scala.math.sqrt
  sqrt(x) + 1.0
}
Run Code Online (Sandbox Code Playgroud)

我正在对上述函数进行以下 3 次调用:

sqrtplus1(5) // outputs 26
sqrtplus1(6) // outputs 37
sqrtplus1(7) // outputs 50
Run Code Online (Sandbox Code Playgroud)

虽然上述工作正常,

但是,我想知道,scala.math.sqrtsqrtplus1函数被调用3次数时,包将被导入多少次?谢谢!

Man*_*jan 5

这个答案是来自 scala/center(社区)的@Rob Norris @tpolecat:

导入所做的只是让您引用没有前缀的符号。就它“发生”而言,它完全是在编译时。导入语句没有运行时表示

(例如,与 Python 不同的是,导入是一个可以导致事情发生的语句。)