2012-03-20 29 views
8

Trong các bài viết gần đây của tôi về việc sử dụng hoặc bỏ qua một từ khóa "mới" trong Scala ("new" keyword in Scala) Tôi đã nói rằng sự thiếu sót xuất phát từ thực tế là các lớp nhất định có đối tượng đồng hành được xác định bằng phương pháp áp dụng về họ. Câu hỏi của tôi là: chúng ta có thể nói hoặc có quy tắc chung nào để phân biệt lớp/đối tượng nào có đối tượng đồng hành và áp dụng phương thức không?Scala: các đối tượng đồng hành và từ khóa "mới"

Cảm ơn trước và xin lỗi vì đó là một câu hỏi ngu ngốc, nhưng đến từ một nền Java, điều này hơi khó hiểu.

+1

Bạn có thể tìm trong scaladocs. Hoặc nếu bạn sử dụng một IDE, mã hoàn thành sẽ hiển thị nó. – drexin

+0

Tôi đang sử dụng nhật thực, làm thế nào nó sẽ cho tôi biết liệu tôi có đang sử dụng đồng hành hay không? – Bober02

+0

Câu hỏi của bạn không đồng ý hay không bạn nên sử dụng đồng hành, nhưng cách phân biệt lớp nào có đồng hành với áp dụng được xác định và IDE cho bạn thấy C cho lớp hoặc O cho đối tượng trong danh sách hoàn thành mã. – drexin

Trả lời

11

Trong Scala API documentation, bạn sẽ thấy một biểu tượng nhỏ enter image description here trong danh sách ở bên trái. Nếu bạn bấm vào đó, bạn đi đến tài liệu của đối tượng đồng hành của lớp hoặc đặc điểm được đề cập.

Hầu hết các lớp thu thập và nhiều lớp khác trong thư viện chuẩn đều có đối tượng đồng hành với phương thức apply.

Đối với các kiểu chữ, trình biên dịch Scala tự động tạo đối tượng đồng hành với phương thức apply (cũng như các phương pháp khác).

4

Trong scala API documentation, bạn có thể truy cập vào đối tượng bạn đồng hành bằng cách nhấp vào biểu tượng Object icon như explained by Jesper, nhưng bạn cũng có thể chuyển đổi giữa một lớp và đối tượng bạn đồng hành của mình bằng cách nhấp vào biểu tượng lớp/đối tượng phía trên cùng của bảng điều khiển chính :

enter image description here

Các vấn đề liên quan