2010-07-19 31 views
6

Trong 2,8 tham khảo Scala, phần 5.3.3 trang 69 (77 trong pdf) đoạn sau đây xuất hiện:"lớp A thành công lớp B" có nghĩa là trong tài liệu tham khảo Scala?

Giả sử một đặc điểm D định nghĩa một số khía cạnh của một thể hiện x loại C (tức là D một lớp cơ sở là C). Sau đó, siêu kiểu thực tế của D trong x là loại hợp chất bao gồm tất cả các lớp cơ sở trong L(C) thành công D.

Ký hiệu L(C) có nghĩa là gì (trong văn bản gốc là số thư pháp \ell như biểu tượng)?

Cụm từ "lớp học ... mà thành côngD" có nghĩa là gì? Tôi không quen với ký hiệu.

Trả lời

7

Dòng dưới cùng là, L(C) bao gồm tất cả các lớp cơ sở (toàn bộ phân cấp thừa kế của C, bao gồm các đặc điểm) được đặt hàng dưới dạng chuỗi, với Any ở trên cùng và C ở dưới cùng. Thành côngD có nghĩa là, cao hơn trong chuỗi sau đóD. Giải thích dài hơn là chúng tôi muốn biết, đối với mỗi lớp, "cha mẹ" của nó - cho mục đích thực hiện và sự rõ ràng chung (nó rất lộn xộn trong C++, cho phép thừa kế đa thừa kế không giới hạn.). Trong Java nó đơn giản - bạn chỉ có một siêu lớp trực tiếp. Tuy nhiên, do thành phần mixin-class trong Scala, là một dạng đa thừa kế (từ một superclass + có thể một số đặc điểm), các lớp cơ sở của bất kỳ lớp nào tạo thành một biểu đồ tuần hoàn hướng. L (C) là tuyến tính của các lớp cơ sở của C - bắt đầu từ lớp cha và thêm các đặc điểm (và các lớp cơ sở của chúng) sao cho chúng tạo thành một chuỗi và mỗi lớp có các lớp cơ sở của chính nó ở trên chính nó. Bạn có thể đọc thêm về nó trong Phần 6 của the overview of Scala. Đó là một phác thảo đẹp, toàn diện về tính năng này.

+0

Thực ra, tôi nghĩ "D thành công" có nghĩa là * cao hơn ** trên chuỗi so với D *. Định nghĩa nói rằng những đặc điểm thành công D là siêu kiểu của nó đối với một cá thể của C. –

+0

Vâng, có vẻ như bạn đúng. Sửa câu trả lời. – finrod

+0

không liên quan đến câu hỏi, tôi vẫn tò mò, tiếng mẹ đẻ của bạn là gì? Bạn gọi lớp là nữ "... mỗi lớp có * cô ấy * riêng ..." và tôi tự hỏi nó đến từ đâu. Tôi đoán lớp âm thanh nữ tính trong tiếng mẹ đẻ của bạn. –

2

L (C) là class linearization. Sau đó, "thành công" liên quan đến vị trí trong chuỗi kết quả. Tuyến tính được định nghĩa trong chương 5.1.2 của the spec.

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