2011-08-07 9 views
6

ドキュメントの作成時にインスタンスフィールドを参照するにはどうすればよいですか?ドキュメントのインスタンスメソッドを参照するには?

このコードを検討:Javaでは

object Foo { 
    val foo = 42 
} 

class Foo { 
    val foo = 42 
} 

を、一方がインスタンスメソッドは、 "静的" 方法とFoo#fooためFoo.fooを使用します。

しかし、Scalaの#には、すでにパス依存型のために採取し、

class Foo { 
    class foo 
    def foo = 42 
} 

は法的なコードですので、私は明確にそれを参照することはできませんされています。

これはどのように表示されるべきですか?

答えて

3

難しいです。たぶん英語のような、Foo's fooのように?私は#のあいまいさを逃していました。しかし、あまりにもあいまいさが文脈がなくても存在するので、それは私の好みの選択です。タイプを指す場合、#は1つの意味を持ちます。値または方法を参照する場合、#は別のものを持っています。

タイプとメソッド/値は名前空間を共有しないため、ここではあいまいさはありません。

+0

私はこの目的のためにも#を使用しています。 – retronym

+0

主な問題は、ScalaDocにリンクする対応するURLがどのように見えるかです。曖昧さのない記号を選択することを除いて、URLに「コンテキスト」を埋め込む方法はありません。すでにシンボルを作成しなければならない場合は、ドキュメントでも使用できます。 – soc

+0

@socまあ、Foo.fooはScalaDocで何を指していますか? 'オブジェクトFoo'の'型foo'や 'オブジェクトFoo'の' def foo'には?この問題は既に存在します。それは、人々が同じ識別子を持つタイプメンバーと非タイプメンバーの名前をつぶすほど大嫌いだとすれば、私はそれを無視する、つまり両方を解決すると言います。それ以外に... iirc、URLの '# 'は特別な意味を持っているので、実際にURLで使用することはできません。 –

関連する問題