在scala中这两种导入策略有什么区别
Option 1
import com.somepackage
class MyClass {
//further code
}
Option 2
class MyClass {
import com.somepackage
//further code
}
在斯卡拉中,import
s 是词法范围的。import
ed 标识符仅在其所在范围内可见import
ed in.
在第一种情况下,范围是文件,所以,import
s 在整个文件中可见,但在其他文件中不可见。在第二种情况下,范围是类,所以import
s 在整个类中可见,但在其他类中不可见even在同一个文件中(当然嵌套的类除外MyClass
).
您还可以限制范围import
只是一个方法,甚至一个块(!)
class Foo {
def bar {
// do something
{
import baz.quux.Frotz
// use Frotz
}
// Frotz not visible here
}
}
这是 Scala 规则性、正交性和简单性的一个很好的例子。例如。在 Java 中,块为局部变量创建作用域,但不为局部变量创建作用域import
s(或方法或其他任何东西)。在 Scala 中,块创建作用域。时期。没有例外,没有极端情况。
The import
位于大括号之间,因此它仅在大括号之间可见。它只是执行您所期望的操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)