안녕하세요 공공돌🧸 입니다 !!
오늘은 코틀린 코드 컨벤션에서 서식 지정(Formatting)에 기능, 표현식 본문, 속성, 제어 흐름문, 메소드 호출, 체인된 호출에 대해 설명해보려고 합니다.
다른 서식 지정에 관한 글은 맨 아래 링크에 정리가 되어 있으니 들어가서 한 번씩 봐주세요 😳😳
자세한 코틀린 코드 컨벤션은 아래 링크에서 보실 수 있습니다.
Coding conventions | Kotlin
kotlinlang.org
서식 지정(Formatting)
기능( Functions )
함수 서명이 한 줄에 맞지 않으면 다음 구문을 사용하세요.
fun longMethodName(
argument: ArgumentType = defaultValue,
argument2: AnotherArgumentType,
): ReturnType {
// body
}
함수 매개변수에는 일반 들여쓰기(공백 4개)를 사용하세요.
생성자 매개변수와의 일관성을 보장하는 데 도움이 됩니다.
단일 표현식으로 구성된 본문이 있는 함수에는 표현식 본문을 사용하는 것이 좋습니다.
fun foo(): Int { // bad
return 1
}
fun foo() = 1 // good
표현식 본문( Expression bodies )
함수에 첫 번째 줄이 선언과 같은 줄에 맞지 않는 식 본문이 있는 경우 첫 번째 줄에 기호를 넣고 식 본문을 4개의 공백으로 들여씁니다.
fun f(x: String, y: String, z: String) =
veryLongFunctionCallWithManyWords(andLongParametersToo(), x, y, z)
속성( Properties )
매우 간단한 읽기 전용 속성의 경우 한 줄 형식을 고려해야 합니다.
val isEmpty: Boolean get() = size == 0
보다 복잡한 속성의 경우 항상 get및 set키워드를 별도의 줄에 입력하세요.
val foo: String
get() { /*...*/ }
이니셜라이저가 있는 속성의 경우 이니셜라이저가 길면 기호 뒤에 줄바꿈을 추가하고 =이니셜라이저를 4개의 공백으로 들여씁니다.
private val defaultCharset: Charset? =
EncodingRegistry.getInstance().getDefaultCharsetForPropertiesFiles(file)
제어 흐름문( Control flow statements )
if나 when 문의 조건이 여러 줄이면 항상 문의 본문 주위에 중괄호를 사용하세요.
명령문 시작을 기준으로 조건의 각 후속 행을 4개의 공백만큼 들여씁니다.
조건의 닫는 괄호를 여는 중괄호와 함께 별도의 줄에 배치합니다.
if (!component.isSyncing &&
!hasAnyKotlinRuntimeInScope(module)
) {
return createKotlinNotConfiguredPanel(module)
}
이는 조건과 명령문 본문을 정렬하는 데 도움이 됩니다.
else, catch, finally키워드와 while루프 키워드를 do-while앞의 중괄호와 같은 줄에 배치합니다 .
if (condition) {
// body
} else {
// else part
}
try {
// body
} finally {
// cleanup
}
명령문 에서 when분기가 한 줄 이상인 경우 빈 줄을 사용하여 인접한 케이스 블록과 분리하는 것을 고려하세요.
private fun parsePropertyValue(propName: String, token: Token) {
when (token) {
is Token.ValueToken ->
callback.visitValue(propName, token.value)
Token.LBRACE -> { // ...
}
}
}
중괄호 없이 조건과 같은 줄에 짧은 분기를 배치합니다.
when (foo) {
true -> bar() // good
false -> { baz() } // bad
}
메소드 호출( Method calls )
긴 인자 목록에서는 여는 괄호 다음에 줄 바꿈을 추가하세요.
인자는 4칸 들여쓰기 해주세요.
관련된 여러 인자는 동일한 줄에 그룹화하세요.
drawSquare(
x = 10, y = 10,
width = 100, height = 100,
fill = true
)
인자 이름과 값 사이를 구분하는 = 기호 주변에 공백을 추가하세요.
체인된 호출( Wrap chained calls )
체인된 호출을 줄 바꿈할 때는 . 문자나 ?. 연산자를 다음 줄에 작성하고, 들여쓰기를 한 번 추가하세요.
val anchor = owner
?.firstChild!!
.siblings(forward = true)
.dropWhile { it is PsiComment || it is PsiWhiteSpace }
보통 체인의 첫 번째 호출은 그 전에 줄 바꿈을 추가해야 합니다.
그러나 코드가 그렇게 더 의미를 가지는 경우에는 생략해도 괜찮습니다.
val anchor = owner?.firstChild!!
.siblings(forward = true)
.dropWhile { it is PsiComment || it is PsiWhiteSpace }
1. 들여 쓰기, 가로 공백, 콜론
[ Kotiln Code conventions ] 서식 지정(Formatting) 1
안녕하세요 공공돌🧸 입니다 !! 오늘은 코틀린 코드 컨벤션에서 서식 지정(Formatting)에 대해 설명해보려고 합니다. 서식 지정의 경우 들여 쓰기, 가로 공백, 콜론, 클래스 헤더, 수정자 순서, 등 15
sheep1sik.tistory.com
2. 클래스 헤더, 수정자 순서, 주석, 파일 주석
[ Kotiln Code conventions ] 서식 지정(Formatting) 2
안녕하세요 공공돌🧸 입니다 !! 아래 글에 이어 코틀린 코드 컨벤션에서 서식 지정(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) 2 (2) | 2023.10.30 |
[ 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 |