[Kotlin] 코틀린 기본 문법 정리

han·2021년 7월 26일
0

코틀린의 공식홈페이지에 있는 기본 문법들을 공부해보자.

코틀린의 공식홈페이지 주소
https://kotlinlang.org/docs/reference/basic-syntax.html

함수 선언방법

  1. 기본적인 선언방법
fun sum(a: Int, b: Int): Int {
    return a + b
}
  1. 심플 선언방법
  • 괄호랑 returun type, return 자체가 생략된것을 볼 수 있다.
fun sum2(a: Int, b: Int) = a + b

변수선언

  1. 타입선언(즉시대입)
val a : Int = 1 // val는 한 번만 값을 할당 (final)
var b : Int = 1 // var는 여러번 값 할당 가능 (가변)
  1. 타입체크(즉시대입)
val b = 2 // 우측의 대입값을 보고 Int 타입으로 참조.
var x = 5 // 여러번 재할당 할 수 있는 변수는 var로.
x += 1
  1. 선언 후 초기화
val c: Int
c = 3 // 이런 경우의 변수 선언은 타입을 static하게 정해서 사용해야함.

문자열 템플릿

fun string_template() {
    var a = 1
    val s1 = "a is $a"
    println(s1)

    a = 2 // 변수 a는 문자열안에서 $기호를 붙여 값을 대입하여 사용할 수 있다.
    val s2 = "${s1.replace("is", "was")}, but now is $a" //${} 기호 안에서 메소드 접근 가능.
    println(s2)
}

Null값, Null 체크

  1. Null값
fun parseInt2(str: String): Int? { // str에 정수가 없다면 Null을 반환하는 함수
    val numberList = listOf("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
    if(numberList.contains(str)){
        return parseInt(str)
    } else{
        return null
    }
}
  • : Int? 를통해 Null 혹은 Int 값이 반환될 수 있음을 명시.
  1. Null 체크
    // Null 체크는 보통 언어처럼 == / != 연산자를 사용하여 처리
    if(x != null && y != null) {
        println(x * y)
    } else {
        println("'$arg1' or '$arg2' is not a number")
    }
    
    if(x == null) {
        println("Wrong number format in arg1: '$arg1'")
        return
    }

조건식

  1. 기본 조건식
fun maxOf(a: Int, b: Int): Int {
    if (a > b) {
        return a
    } else {
        return b
    }
}
  1. return 생략 조건식
fun maxf2(a: Int, b: Int) = if(a > b) a else b // 생소하지만 코드수가 차이나는것을 볼 수 있다.

For 반복문

val items = listOf("apple", "banana", "kiwifruit")

// 반환하는 값은 indices경우와 같다.
for (item in items) {
    println(item)
}

// size와는 다르게 0 .. LastIndex(2)까지 반환 (0부터 시작)
for (index in items.indices) { 
    println("item at $index is ${items[index]}")
}

// size는 1부터 시작하는 갯수라서 인덱스 관련값을 구할때 -1하는 경우와
// 밑에처럼 until을 사용하는데 indices 사용을 권장한다.
for (index in 0 until items.size) { 
    println("item at $index is ${items[index]}")
}
for (index in 0..(items.size-1)) {
    println("item at $index is ${items[index]}")
}

When 조건문

  • Switch문과 동일하다고 보면 된다.
fun describe(obj: Any): String =
    when (obj) {
        1          -> "One"
        "Hello"    -> "Greeting"
        is Long    -> "Long"
        !is String -> "Not a string"
        else       -> "Unknown"
    }
profile
개인 공부 및 기록겸 벨로그 시작

0개의 댓글