2011-08-07 10 views
6

Jak mogę odnieść się do pola instancji podczas pisania dokumentacji?Jak odnieść się do metod instancji w dokumentacji?

Rozważmy następujący kod:

object Foo { 
    val foo = 42 
} 

class Foo { 
    val foo = 42 
} 

w Javie, można by użyć Foo.foo dla „statycznym” metody i Foo#foo dla metody instancji.

Ale w Scala # jest już zajęta dla typów ścieżek zależne i

class Foo { 
    class foo 
    def foo = 42 
} 

jest kodeks prawny, więc nie mogę się do niego jednoznacznie.

Czy jest jakaś konwencja, jak to powinno wyglądać?

Odpowiedz

3

Trudne. Może angielski, jak w Foo's foo? Brakowało mi niejednoznaczności #. To nadal jest mój ulubiony wybór, ponieważ dwuznaczność istnieje tylko w przypadku braku kontekstu. W odniesieniu do typu, # ma jedno znaczenie. Odnosząc się do wartości lub metody, # ma inną.

Ponieważ typy i metody/wartości nie współdzielą przestrzeni nazw, nie widzę tu znaczenia dwuznaczności.

+0

Używam też do tego celu. – retronym

+0

Głównym problemem jest jak powinien wyglądać odpowiedni adres URL łączący się z ScalaDoc? Nie ma sposobu na umieszczenie "kontekstu" w adresie URL ... oprócz wybrania jednoznacznego symbolu. A jeśli już musimy wymyślić symbol, możemy go również wykorzystać w dokumentacji. – soc

+0

@soc No cóż, ale do czego odnosi się 'Foo.foo' w ScalaDoc? Do 'type foo' w' object Foo' lub do 'def foo' w' object Foo'? Ten problem już istnieje. Biorąc pod uwagę, że dzieje się tak tylko wtedy, gdy ludzie są tak nierozsądni, że wymieniają nazwy i nie wpisują członków o tym samym identyfikatorze, mówię, że to ignorujemy - lub rozwiązujemy oba. Poza tym ... iirc, '#' w adresie URL ma specjalne znaczenie, więc nie możemy go używać na URL-ach, prawda? –

Powiązane problemy