스칼라 주석 가이드
scaladoc
intelliJ에서 스칼라 주석을 통한 scalaDocs을 만드는 기능이 있다.
상단 -> tool -> Generate scaladoc -> 각각 설정 후 ok 버튼
docs를 만들기 위한 태그들
https://docs.scala-lang.org/overviews/scaladoc/for-library-authors.html
주석 예시들
다음 예시들은 scala.util과 scala 공식문서를 발취하고 참조했다
예시
/** The empty list.
*
* @author Martin Odersky
* @version 1.0, 15/07/2003
* @since 2.8
*/
@SerialVersionUID(0 - 8256821097970055419L)
case object Nil extends List[Nothing] {
override def isEmpty = true
override def head: Nothing =
throw new NoSuchElementException("head of empty list")
override def tail: List[Nothing] =
throw new UnsupportedOperationException("tail of empty list")
// Removal of equals method here might lead to an infinite recursion similar to IntMap.equals.
override def equals(that: Any) = that match {
case that1: scala.collection.GenSeq[_] => that1.isEmpty
case _ => false
}
}
object
/** Factory for [[mypackage.Person]] instances. */
object Person {
/** Creates a person with a given name and age.
*
* @param name their name
* @param age the age of the person to create
*/
def apply(name: String, age: Int) = {}
/** Creates a person with a given name and birthdate
*
* @param name their name
* @param birthDate the person's birthdate
* @return a new Person instance with the age determined by the
* birthdate and current date.
*/
def apply(name: String, birthDate: java.util.Date) = {}
}
package
package my.package
/** Provides classes for dealing with complex numbers. Also provides
* implicits for converting to and from `Int`.
*
* ==Overview==
* The main class to use is [[my.package.complex.Complex]], as so
* }
*
* If you include [[my.package.complex.ComplexConversions]], you can
* convert numbers more directly
* }
*/
package complex {}
@constructor
/** A person who uses our application.
*
* @constructor create a new person with a name and age.
* @param name the person's name
* @param age the person's age in years
*/
class Person(name: String, age: Int) {
}
@autor
//@author 만든사람
@version
//@version 버전 날짜
@since
//@since 언제부터사용했는지
@param
//@param 변수이름 설명
@tparam
//@tparam T curring에 사용되는 파라미터 설명(T타입 인자)
Returns
/** Returns `true` if this value is less than or equal to x, `false` otherwise. */
def <=(x: Byte): Boolean
@example
/**
* @example }
*/
override def slice(from: Int, until: Int): List[A] = {
val lo = scala.math.max(from, 0)
if (until <= lo || isEmpty) Nil
else this drop lo take (until - lo)
}
익명함수의 경우
가끔 익명함수에 주석을 달게될수 있으나 그런 경우 intellij에서는 밑줄을 쳐준다. 예를 들면 scalatra 에서 각 API URL들… get(){} 형식의 servlet에 구현한 것들은 익명함수를 호출하는 것이므로 주석을 달아도 빨간줄이 생기고 docs가 생성되지 않는다.
/**
* ---
* @param..
* @param..
*/
get ("/") {
.
.
.
}