Khi tôi sử dụng đặc tính scala App, tôi không thể in println hoạt động.Scala println không hoạt động với tính năng Ứng dụng
này đơn giản ví dụ in như mong đợi,
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
Nhưng một khi tôi giới thiệu các đặc điểm không,
object HelloWorld extends App {
println("Hello, world!")
}
tôi nhận được không có lỗi nhưng không in ra cửa sổ Console.
Lạ. Điều đó có vẻ giống như một giới hạn kỳ lạ của người phiên dịch. Có lời giải thích nào tại sao tôi cần phải biên dịch lớp để làm cho nó hoạt động không? Những đặc điểm không làm việc trong thông dịch viên? –
Và các đặc điểm hoạt động trong trình thông dịch, nhưng Ứng dụng là một trường hợp đặc biệt. Nó thường được trình bày là "Ứng dụng kết thúc mã bên trong đối tượng triển khai của nó trong một phương thức chính", nhưng nó không thực sự - thay vào đó, nó gắn mã đó vào cái gọi là delayInit, được gọi khi phương thức chính được gọi thay vì khi đối tượng được tạo ra, đó là bình thường khi mã trần bên trong một khai báo đối tượng được gọi. –
Ah có ý nghĩa, cảm ơn cho lời giải thích. –