2010-07-15 33 views
14

Làm thế nào để bạn thực hiện một chức năng được bảo vệ trong một lớp có thể truy cập được tới tất cả các lớp trong gói trong Scala?Các chức năng được bảo vệ trong Scala

+2

Khi đơn vị thử nghiệm các chức năng bên trong của một định class class class protected class thực sự tiện dụng (bạn không muốn làm cho phương thức phức tạp đó trở nên công khai, nhưng bạn sẽ thích chạy thử nghiệm đơn vị cho nó) – monzonj

Trả lời

39

Bạn có thể làm

protected[packagename] def foo() {...} 
+3

Có, nhưng cho phép gọi nó là gì: một phương thức. Chức năng trong Scala là một cái gì đó hoàn toàn khác. –

+3

Chẳng phải đó là 'private [packagename]'? –

+0

Sau đó, đây là câu trả lời bạn đang tìm kiếm, hãy đánh dấu nó như vậy. –

11

Nếu chúng ta chú ý đến sự khác biệt giữa chức năng và phương pháp, chúng ta có thể xác định một đối tượng bắt nguồn từ Function:

protected[packagename] object fn extends (Int=>Int) { 
    def apply(n: Int) = 2*n 
} 
Các vấn đề liên quan