/**
* 프로젝트에서 짧은 메시지를 사용자에게
* 출력할 때 사용하는 기본적인 방식
* @param message 사용자에게 보여줄 메시지
* @param length 메시지 길이를 나타내는 enum 값
*/
fun Context.showMessage(/*...*/) { /*...*/ }
showMessage
지만 내부적으로 토스트를 출력하고 있다면 앞으로도 계속 토스트만 출력하게될 수도 있다.sum()
)fun List<Int>.product() = fold(1) { acc, i -> acc * i }
// 주석으로 표현하기
fun update() {
// 사용자를 업데이트 합니다.
for (user in users) {
user.update()
}
// 책을 업데이트 합니다.
for (book in books) {
updateBook(book)
}
}
fun update() {
updateUsers()
updateBooks()
}
private fun updateUsers() { /*...*/ }
private fun updateUsers() { /*...*/ }
public
함수는 주석으로 규약을 나타내는 경우가 매우 많다.@param <name>
: 함수 파라미터 또는 클래스, 프로퍼티 등을 문서화@return
: 함수의 리턴 값을 문서화@constructor
: 클래스의 기본 생성자를 문서화@receiver
: 확장 함수의 리시버를 문서화@property <name>
: 명확한 이름을 갖는 프로퍼티를 문서화 (기본 생성자에 정의된)@throw <class>
, @exception <class>
: 메서드 내부에서 발생할 수 있는 예외를 문서화@sample <identifier>
: 정규화된 형식 이름을 사용해서 함수의 사용 예를 문서화@see <identifier>
: 특정 클래스 또는 메서드에 대한 링크를 추가@author
: 요소의 작성자를 지정@since
: 요소에 대한 버전을 지정@supress
: 이를 지정하면 만들어지는 문서에 해당 요소가 제외되는데 외부에서 사용 가능하지만 공식 API에 필요 없는 요소에 지정interface Car {
fun setWheelPosition(angle: Float)
fun setBreakPedal(presuure: Double)
fun setGasPedal(pressure: Double)
}
interface Car {
/**
* Change car direction
*
* @param angle 바퀴 측 각도를 지정합니다.
* ...
*/
fun setWheelPosition(angle: Float)
// ...
}