[코틀린] Kotlin Basic Syntax

🔥 Kotlin Basic Syntax



✨ Package definition and imports


✨ Program entry point


✨ Functions

// Unit 리턴 유형은 생략 가능함 fun printSum(a: Int, b: Int) { println(“sum of $a and $b is ${a + b}”) }

<br>

---
### ✨ Variables
* 읽기 전용 지역 변수는 `val`을 사용하여 정의하며, 값은 한 번만 할당할 수 있다.
```kotlin
val a: Int = 1  // 값 즉시 할당
val b = 2       // `Int` 타입추론
val c: Int      // 초기화 값이 제공되지 않은 경우 자료형 필요
c = 3           // 값 지연 할당


fun incrementX() { x += 1 }

<br>

---
### ✨ Comments
* `Kotlin`은 한 줄 및 여러 줄(블록) 주석을 지원한다.
```kotlin
// This is an end-of-line comment

/* This is a block comment
   on multiple lines. */



✨ String templates

val s = “abc” println(“$s.length is ${s.length}”) // prints “abc.length is 3”

<br>

---
### ✨ Conditional expressions
```kotlin
fun maxOf(a: Int, b: Int): Int {
    if (a > b) {
        return a
    } else {
        return b
    }
}

// 위의 조건식을 다음과 같이 표현 가능함
fun maxOf(a: Int, b: Int) = if (a > b) a else b



✨ Nullable values and null checks

// 위의 함수는 다음과 같이 표현 가능함 fun printProduct(arg1: String, arg2: String) { val x = parseInt(arg1) val y = parseInt(arg2)

if (x == null) {
    println("Wrong number format in arg1: '$arg1'")
    return
}
if (y == null) {
    println("Wrong number format in arg2: '$arg2'")
    return
}  
// null 체크 후 x 와 y 값은 자동으로 non-nullable 값으로 캐스팅됨
println(x * y) } ``` <br>

✨ Type checks and automatic casts

// 위의 함수는 다음과 같이 표현 가능함 fun getStringLength(obj: Any): Int? { if (obj !is String) return null

// 타입 체크 분기 밖에서 `obj`는 자동으로 `String`으로 캐스팅 됨
return obj.length } ``` <br>

✨ for loop

val items = listOf("apple", "banana", "kiwifruit")
for (item in items) {
    println(item)
}

// 위의 함수는 다음과 같이 표현 가능함
val items = listOf("apple", "banana", "kiwifruit")
for (index in items.indices) {
    println("item at $index is ${items[index]}")
}



✨ while loop

val items = listOf("apple", "banana", "kiwifruit")
var index = 0
while (index < items.size) {
    println("item at $index is ${items[index]}")
    index++
}



✨ when expression

fun describe(obj: Any): String = when (obj) {
    1          -> "One"
    "Hello"    -> "Greeting"
    is Long    -> "Long"
    !is String -> "Not a string"
    else       -> "Unknown"
}



✨ Ranges

// 숫자가 범위 외에 있는 경우 val list = listOf(“a”, “b”, “c”)

if (-1 !in 0..list.lastIndex) { println(“-1 is out of range”) } if (list.size !in list.indices) { println(“list size is out of valid list indices range, too”) }

// 범위 내에서 반복 for (x in 1..5) { print(x) }

<br>

---
### ✨ Collections
* 컬렉션을 바탕으로 반복하기
```kotlin
for (item in items) {
    println(item)
}



📝 References