13

Scaladocの一部のメソッドの説明がで始まるのはなぜ[use case]ですか?

例:scala.collection.immutable.StringOps.++

将来的に置き換えられるのは単なるプレースホルダーですか?

4

1 に答える 1

24

これらは、これらのメソッドがどのように呼び出されるかの簡略化された例です。通常、これらのメソッド(、、、++など)には暗黙のパラメーターが含まれ、ほとんどの場合、結果のコレクションの作成を抽象化するビルダーファクトリーと呼ばれる引数が含まれます。mapflatMap

ほとんどの場合、コレクションのクライアントはこれらの暗黙的なパラメーターを指定しないため、ScalaDocを使用すると、メソッドの簡略化された説明(ユースケース)を定義できます。これにより、ユーザーは問題のメソッドの背後にあるアイデアをすばやく理解でき、たとえばCanBuildFrom、その意味や使用方法に煩わされることはありません。

たとえば、これは:の完全な宣言です++

def ++[B >: A, That](that: TraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That

ほとんどの場合、ターゲットコレクションタイプは呼び出しの受信者と同じであるため、呼び出しは宣言が次のようになります(++たとえば、で定義されていると仮定しますList)。

def ++(that: TraversableOnce[A]): List[A]

上記では、暗黙はコンパイル時に解決され、型パラメーターが推測されます。ほとんどの場合、これはクライアントのメソッドのビューである必要があります。

また、独自のメソッドにユースケースで注釈を付けたい場合は@usecase、ドキュメントコメントでタグを使用してください。

/** ...
 *  ...
 *  @usecase def ++(that: TraversableOnce[A]): List[A]
 */
于 2010-11-05T14:52:31.120 に答える