Theo hiểu biết của tôi, không thể viết hàm hoặc biến hoàn toàn nằm ngoài phạm vi. Điều đó nói rằng là có thể viết chúng ra ngoài định nghĩa lớp/đối tượng. Bạn chỉ cần quấn chúng trong một số package object. Những gì đang xảy ra về cơ bản là thay vì buộc hàm/biến cho một lớp hoặc đối tượng đã cho, bạn buộc nó vào một gói. Ví dụ:
package test
package object inside {
def hello = println("Hello from outer space!")
class Foo {
hello // call the function from the package
}
}
Bây giờ, khi bạn xây dựng Foo, bạn sẽ được in "Xin chào từ không gian bên ngoài!".
Nếu không biết hoàn toàn những gì tôi đang nói, tôi có thể tưởng tượng rằng phiên bản tập lệnh bạn đã đề cập ở trên hoạt động, bởi vì tập lệnh đang được chạy trong một môi trường nào đó. Vì vậy, hãy tưởng tượng một số lớp tải kịch bản, sau đó gói nó vào một đối tượng và chạy nó. Điều đó có nghĩa là một tình huống hơi giống như ở trên: các chức năng vẫn "thuộc về" ở đâu đó.
Nguồn
2011-10-30 12:13:40
Bạn có thể chỉnh sửa tập lệnh mà không cần gói trong đối tượng trong IntelliJ –