Kotlin - 2

KHS·2024년 1월 12일
0

Kotlin

목록 보기
2/4
post-thumbnail

제어문

if else

  • if 제어문을 return 가능
    • Kotlin에서는 삼항 연산자를 사용하지 않음
val grade = if(score >= 50) "P" else "F"

//Java
if(score >= 0 && score <= 100) ...

//Kotlin
if(score in 0..100) ...

switch case

  • when 키워드 사용
    • when 키워드의 조건문 자체를 블럭 내부에서 구현 가능
  • 조건문에는 expression 종류 사용 가능
  • 한 줄에 조건 여러 개 입력 가능
return when(score) {
  in 90..99 -> "A"
  ...
  8 -> "B" //조건문이 score / 10 인 것으로 고려
  else -> "D"
}

return when {
  number in 90..99 -> "P"
  else "F"
}

반복문

  • 전체적으로 Java와 Kotlin의 문법은 유사함
    • while 사용법은 동일
  • 변화값을 표현하는 특정 키워드 사용
    • 역순인 경우 2 downTo 0
    • 반복 단위를 설정(i+=2 등)은 step 2 로 표현
//for-each
//Java
List numList = List.of(1,2,3);

for(int num : numList) {
  ...
}

//Kotlin
val numList = listOf(1,2,3)
for(num in numList) {
  ...
}

//범위 지정 for
//Java
for(int i = 0; i < 3; i++) {
  ...
}

//Kotlin
for(i in 0..2) {
  ...
}

예외 처리

  • try-catch-finally 동일하게 사용 가능
  • if-else와 같이 try 구문을 return 가능
  • Kotlin에서는 Checked/Unchecked Exception 구분없이 모두 Unchecked로 간주함
    • throws 혹은 try-catch 필수 아님
//Kotlin에서는 try-with-resource를 사용하지 않음
//Java
try(BufferedReader br = new BufferedReader(...)) {
  br.readLine();
}

//Kotlin
BufferedReader(???).use {
  reader -> reader.readLine()
}

함수 작성

  • public 생략 가능
  • fun이라는 키워드로 함수라고 명시
  • return=로 생략 가능
fun max(a: Int, b: Int): int = if(a > b) a else b
  • 함수 파라미터 기본값을 사용하여 Overloading 구현
  • 클래스 인스턴스 생성 시 builder 패턴을 사용하지 않고 named argument로 구현 가능
    • 자바 코드를 참조할 때는 named argument 사용 불가
fun someFun(str: String, num: Int = 3, useNeWLine: Boolean = true) {
  ...
}

someFun("문자열")
someFun("문자열", 1)
someFun("문자열", 2, false)
someFun("문자열", useNewLine = false)
---
//가변 파라미터 사용
//Java
printAll(["1", "2", "3"])

public void printAll(String... params) {
  ...
}

//Kotlin
printAll(["1", "2", "3"])
val strList = arrayOf("1", "2", "3")
printAll(*strList)

fun printAll(vararg params: String) {
  ...
}
profile
Java & Vue ...

0개의 댓글