2011-08-07 44 views
6

Làm thế nào tôi có thể tham chiếu đến một trường thể hiện khi viết tài liệu?Làm thế nào để tham khảo các phương pháp thể hiện trong tài liệu?

xem xét mã này:

object Foo { 
    val foo = 42 
} 

class Foo { 
    val foo = 42 
} 

Trong Java, người ta sẽ sử dụng Foo.foo đối với phương pháp "tĩnh" và Foo#foo cho phương pháp dụ.

Nhưng trong Scala # đã được sử dụng với nhiều loại đường phụ thuộc và

class Foo { 
    class foo 
    def foo = 42 
} 

là mã quy phạm pháp luật, vì vậy tôi không thể đề cập đến nó một cách rõ ràng.

Có một số quy ước về điều này sẽ như thế nào?

Trả lời

3

Khó khăn. Có thể giống như tiếng Anh, như trong Foo's foo? Tôi đã bỏ lỡ sự mơ hồ của #. Đó vẫn là lựa chọn ưa thích của tôi, mặc dù, bởi vì sự mơ hồ chỉ tồn tại trong sự vắng mặt của bối cảnh. Khi đề cập đến một loại, # có một ý nghĩa. Khi đề cập đến một giá trị hoặc phương pháp, # có một giá trị hoặc phương pháp khác.

Vì các loại và phương pháp/giá trị không chia sẻ không gian tên nên tôi không thấy sự mơ hồ có liên quan ở đây.

+0

Tôi cũng sử dụng # cho mục đích này. – retronym

+0

Vấn đề chính là URL tương ứng nên liên kết với ScalaDoc như thế nào? Không có cách nào để nhúng "ngữ cảnh" vào một URL ... ngoại trừ việc chọn một biểu tượng rõ ràng. Và nếu chúng ta phải phát minh ra một biểu tượng, chúng ta cũng có thể sử dụng nó trong tài liệu. – soc

+0

@soc Vâng, nhưng những gì 'Foo.foo' đề cập đến trong ScalaDoc? Để 'loại foo' trong' đối tượng Foo', hoặc để 'def foo' trong' đối tượng Foo'? Vấn đề này đã tồn tại. Do nó chỉ xảy ra nếu mọi người quá khắt khe như để đặt tên cho các thành viên kiểu và không phải kiểu với cùng một mã định danh, tôi nói chúng ta bỏ qua nó - hoặc giải quyết cho cả hai. Bên cạnh đó ... iirc, '#' trong một URL có ý nghĩa đặc biệt, vì vậy chúng tôi không thể thực sự sử dụng nó trên URL, chúng ta có thể? –

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