【问题标题】:How do I document vals in pattern definitions如何在模式定义中记录 val
【发布时间】:2014-07-24 11:43:29
【问题描述】:

我想为我班级的每个 val 和 def 创建 ScalaDoc 条目。问题是 val 位于模式定义中,不知道如何使用 /** */ 语法。

例子:

class C(id: String) {
   val (part1, part2) = {
         .....
         (expr1, expr2)
   }
}

我如何记录part1part2

在向 this documentation 询问 ScalaDoc 之前,我已经阅读过。

【问题讨论】:

  • 你可以做private val parts = { ... }; /** ... */ val part1 = parts._1; /** ... */ val part2 = parts._2;
  • 好,我想说:“您可以记录生成元组的函数(如果需要,将代码提取到函数中)”但这仅适用于 val 是私有的内部开发人员文档.我更喜欢 @rightfold 解决方案,除非有一些特殊的 scaladoc 东西。

标签: scala scaladoc


【解决方案1】:

应该是

  val (
    /** Part one. */
    x,
    /** Part two. */
    y
  ) = (1, 2)

但是对于一个有缺陷的启发式

/** To prevent doc comments attached to expressions from leaking out of scope
 *  onto the next documentable entity, they are discarded upon passing a right
 *  brace, bracket, or parenthesis.
 */
def discardDocBuffer(): Unit = ()

-Xlint 下你会看到

[warn] /home/apm/goofy/src/main/scala/docked.scala:10: discarding unmoored doc comment
[warn]     /** Part two. */
[warn]     ^

也许只有在封闭实体上没有发现任何文档时,才可以将启发式方法改进为丢弃。

【讨论】:

  • 如果可以按照建议进行改进,那就太好了。
  • 根据您的回答为 Scala 团队创建了一个新问题:issues.scala-lang.org/browse/SI-8751
  • "unmoored" doc cmets 未由 Adriaan 签署。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-18
  • 1970-01-01
  • 1970-01-01
  • 2012-07-30
  • 2021-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多