2012-04-13 28 views
6

Sự khác biệt giữa thứ gì đó được xác định trong đối tượng gói scala và trong Predef là gì?Đối tượng gói Scala vs Predef

Predef chỉ là một di tích từ trước 2.8 khi các đối tượng gói không tồn tại hoặc có một số lý do khác khiến chúng tôi cần cả hai?

Trả lời

4

Theo ScalaDoc,

"Đối tượng Predef cung cấp các định nghĩa có thể truy cập vào tất cả các đơn vị biên soạn Scala mà không cần trình độ chuyên môn rõ ràng"

Vì vậy, nó không phải là một đối tượng gói chính nó, nhưng hoạt động như một chức năng cung cấp chức năng cho "tất cả các đơn vị biên soạn Scala"

Vì lý do tại sao tình hình tồn tại, tôi nghĩ bạn đúng, có vẻ là một legacy issue

Vì lý do vẫn tồn tại, có thể tiếp tục là limitations of package objects ngăn không cho hợp nhất trước.

+0

Tôi tự hỏi nếu có bất kỳ ví dụ cụ thể nào trong Predef không thể đi vào đối tượng gói scala –

+0

Predef có thể hoạt động như một đối tượng gói, nhưng phải có lý do tại sao các nhà phát triển lõi Scala đã chọn giữ Predef như một đối tượng không gói nếu đó là trường hợp. Một đầu mối trong Predef là: "scala.'package' // để buộc đối tượng gói scala được nhìn thấy". Phải có một "import Predef._" được cung cấp bởi trình biên dịch cung cấp cho chúng ta chức năng mà chúng ta sẽ không nhận được là Predef một đối tượng gói. Dù sao, tôi cá là nhóm người dùng scala-lang sẽ có thể làm sáng tỏ vấn đề ... – virtualeyes