gpt4 book ai didi

Scala 类顶部和内部的 Scala 导入语句

转载 作者:行者123 更新时间:2023-12-03 23:14:19 26 4
gpt4 key购买 nike

在scala中这两种导入策略有什么区别

选项 1

import com.somepackage

class MyClass {
//further code
}

选项 2
class MyClass {
import com.somepackage
//further code
}

最佳答案

在 Scala 中,import s 是词法范围的。 import ed 标识符仅在它们的作用域内可见 import编入。

在第一种情况下,作用域是文件,所以,import s 将在整个文件中可见,但在其他文件中不可见。在第二种情况下,作用域是类,所以 import s 将在整个类中可见,但即使在同一文件中的其他类中也不可见(当然嵌套在 MyClass 中的类除外)。

您还可以限制 import 的范围只是一个方法,甚至一个块(!)

class Foo {
def bar {
// do something
{
import baz.quux.Frotz
// use Frotz
}
// Frotz not visible here
}
}

这是 Scala 的规律性、正交性和简单性的一个很好的例子。例如。在 Java 中,块为局部变量创建作用域,但不为 import 创建作用域。 s(或方法或其他任何东西)。在 Scala 中,块创建作用域。时期。没有异常(exception),没有极端情况。
import位于花括号之间,因此它仅在花括号之间可见。它只是做你期望的。

关于Scala 类顶部和内部的 Scala 导入语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17029764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com