Trong Scala, import
s được lexically scoped. import
định ed chỉ hiển thị trong phạm vi họ import
ed trong.
Trong trường hợp đầu tiên, phạm vi là các tập tin, vì vậy, import
s sẽ được hiển thị trong toàn bộ tập tin, nhưng không phải trong các file khác. Trong trường hợp thứ hai, phạm vi là lớp, do đó, import
s sẽ hiển thị trong toàn bộ lớp, nhưng không hiển thị trong các lớp khác thậm chí trong cùng một tệp (ngoại trừ các khóa học được lồng trong MyClass
).
Bạn cũng có thể giới hạn phạm vi của một import
chỉ để một phương pháp duy nhất một thậm chí là một khối duy nhất (!)
class Foo {
def bar {
// do something
{
import baz.quux.Frotz
// use Frotz
}
// Frotz not visible here
}
}
Đây là một ví dụ tốt đẹp của Scala của đặn, tính trực giao và đơn giản. Ví dụ. trong Java, chặn tạo phạm vi cho các biến cục bộ nhưng không cho các số import
s (hoặc các phương thức hoặc bất kỳ thứ gì khác). Trong Scala, khối tạo ra phạm vi. Giai đoạn. Không có trường hợp ngoại lệ, không có trường hợp góc.
import
nằm giữa các dấu ngoặc nhọn, chỉ hiển thị giữa các dấu ngoặc nhọn. Nó chỉ làm những gì bạn mong đợi.
Nguồn
2013-06-10 23:27:41
Phạm vi của 'com.sompackage' khác! – Shrey