将模板从Java转换为Scala时,我注意到以下带有多行注释的怪癖可以缩减为以下代码段:
/**
* /*
*/
class Blah {}
上述代码无法使用“error:unclosed comment”进行编译,而在Java中有效。
这证明是有问题的,因为它使得记录例如更难接受glob-string字符串(例如“需要像something/*.myformat
这样的路径”。
这是一个错误还是一个功能?
答案 0 :(得分:6)
事实上,是一项功能。引用Section 1.4 of the Scala Language Specification:
多行评论是
/*
和*/
之间的一系列字符。 多行注释可以嵌套,但必须正确 嵌套。 因此,/* /* */
之类的评论将被拒绝 没有终止的评论。
(emph.mine)
幸运的是,在您需要它的情况下(比如问题中的glob示例)by escaping the /
or *
literal可以相对容易地解决这个问题,例如:
/**
* /*
*/
在生成的Scaladoc中正确显示。