안녕하세요 공공돌🧸 입니다 !!
아래 글에 이어 코틀린 코드 컨벤션에서 서식 지정(Formatting)에 클래스 헤더, 수정자 순서, 주석, 파일 주석에 대해 설명해보려고 합니다.
다른 서식 지정에 관한 글은 맨 아래 링크에 정리가 되어 있으니 들어가서 한 번씩 봐주세요 😳😳
자세한 코틀린 코드 컨벤션은 아래 링크에서 보실 수 있습니다.
Coding conventions | Kotlin
kotlinlang.org
서식 지정(Formatting)
클래스 헤더( Class headers)
몇 가지 기본 생성자 매개변수가 있는 클래스는 한 줄로 작성할 수 있습니다.
class Person(id: Int, name: String)
더 긴 헤더가 있는 클래스는 각 기본 생성자 매개변수가 들여쓰기가 있는 별도의 줄에 있도록 형식을 지정해야 합니다. 또한 닫는 괄호는 새 줄에 있어야 합니다.
상속을 사용하는 경우 슈퍼클래스 생성자 호출 또는 구현된 인터페이스 목록은 괄호와 같은 줄에 있어야 합니다.
class Person(
id: Int,
name: String,
surname: String
) : Human(id, name) { /*...*/ }
여러 인터페이스의 경우 슈퍼클래스 생성자 호출을 먼저 찾은 다음 각 인터페이스를 다른 줄에 배치해야 합니다.
class Person(
id: Int,
name: String,
surname: String
) : Human(id, name),
KotlinMaker { /*...*/ }
긴 상위 유형 목록이 있는 클래스의 경우 콜론 뒤에 줄 바꿈을 넣고 모든 상위 유형 이름을 가로로 정렬합니다.
class MyFavouriteVeryLongClassHolder :
MyLongHolder<MyFavouriteVeryLongClass>(),
SomeOtherInterface,
AndAnotherOne {
fun foo() { /*...*/ }
}
클래스 헤더가 긴 경우 클래스 헤더와 본문을 명확하게 구분하려면 위의 예와 같이 클래스 헤더 뒤에 빈 줄을 넣거나 여는 중괄호를 별도의 줄에 넣습니다.
class MyFavouriteVeryLongClassHolder :
MyLongHolder<MyFavouriteVeryLongClass>(),
SomeOtherInterface,
AndAnotherOne
{
fun foo() { /*...*/ }
}
생성자 매개변수에는 일반 들여쓰기(공백 4개)를 사용하세요.
클래스 생성자의 매개변수는 클래스 본문에 선언된 속성과 동일한 들여쓰기를 사용하여 작성합니다.
이렇게 함으로써 클래스의 생성자와 속성 사이의 관계가 명확해집니다. 클래스 생성자 매개변수가 본문에서 정의한 속성과 동일한 들여쓰기를 사용하면 코드를 더 쉽게 이해할 수 있습니다.
수정자 순서( Modifiers order )
선언에 수정자가 여러 개 있는 경우 항상 다음 순서로 배치하세요.
public / protected / private / internal
expect / actual
final / open / abstract / sealed / const
external
override
lateinit
tailrec
vararg
suspend
inner
enum / annotation / fun // as a modifier in `fun interface`
companion
inline / value
infix
operator
data
수정자 앞에 모든 주석을 배치합니다.
@Named("Foo")
private val foo: Foo
라이브러리에서 작업하지 않는 한 중복 수정자(예: public)를 생략하세요.
주석( Annotations )
주석이 첨부된 선언 앞에 별도의 줄에 동일한 들여쓰기를 사용하여 주석을 배치합니다.
@Target(AnnotationTarget.PROPERTY)
annotation class JsonExclude
인수가 없는 주석은 같은 줄에 배치될 수 있습니다.
@JsonExclude @JvmField
var x: String
인수가 없는 단일 주석은 해당 선언과 같은 줄에 배치될 수 있습니다.
@Test fun foo() { /*...*/ }
파일 주석( File annotations )
파일 주석은 파일 주석(있는 경우) 뒤, 명령문 앞에 배치 되며 빈 줄로 package구분됩니다.
(패키지가 아닌 파일을 대상으로 한다는 사실을 강조하기 위해)
/** License, copyright and whatever */
@file:JvmName("FooBar")
package foo.bar
1. 들여 쓰기, 가로 공백, 콜론
[ Kotiln Code conventions ] 서식 지정(Formatting) 1
안녕하세요 공공돌🧸 입니다 !! 오늘은 코틀린 코드 컨벤션에서 서식 지정(Formatting)에 대해 설명해보려고 합니다. 자세한 코틀린 코드 컨벤션은 아래 링크에서 보실 수 있습니다. Coding conventions
sheep1sik.tistory.com
3. 기능, 표현식 본문, 속성, 제어 흐름문, 메소드 호출, 체인된 호출
[ Kotiln Code conventions ] 서식 지정(Formatting) 3
안녕하세요 공공돌🧸 입니다 !! 오늘은 코틀린 코드 컨벤션에서 서식 지정(Formatting)에 기능, 표현식 본문, 속성, 제어 흐름문, 메소드 호출, 체인된 호출에 대해 설명해보려고 합니다. 다른 서식
sheep1sik.tistory.com
4. 람다, 후행 쉼표
[ Kotiln Code conventions ] 서식 지정(Formatting) 4
안녕하세요 공공돌🧸 입니다 !! 오늘은 코틀린 코드 컨벤션에서 서식 지정(Formatting)에 람다, 후행 쉼표에 대해 알아보겠습니다. 다른 서식 지정에 관한 글은 맨 아래 링크에 정리가 되어 있으니
sheep1sik.tistory.com
공부하는 공돌이, 공공돌입니다🐻
@sheep1sik
'Android' 카테고리의 다른 글
[ Kotiln Code conventions ] 서식 지정(Formatting) 4 (1) | 2023.11.03 |
---|---|
[ Kotiln Code conventions ] 서식 지정(Formatting) 3 (2) | 2023.11.02 |
[ Kotiln Code conventions ] 서식 지정(Formatting) 1 (2) | 2023.10.30 |
[ Kotlin Code conventions ] 명명규칙(Naming rules) (2) | 2023.10.29 |
[ Kotlin Code conventions ] 소스코드 구성(Source code organization) (1) | 2023.10.22 |