Kotlin 기초 정리 함수, 변수, 조건문, 리스트

같은 팀 한 분이 가볍게 보기 좋다고 추천해주셔서 시작한 Kotlin 공부.
강의 들으면서 정리한 내용을 가볍게 공유합니다.
시청한 강의는 이 링크입니다.
1. 함수 정의하기
Kotlin에서 함수는 fun
키워드로 정의합니다. 반환값이 없는 경우엔 Unit
을 명시하거나 생략할 수 있습니다.
fun helloWorld() {
println("Hello, World!")
}
Unit
은 Java의 void
와 유사한 개념입니다. 명시적으로 작성하면 아래와 같습니다.
fun helloWorld(): Unit {
println("Hello, World!")
}
반환값이 없는 경우
: Unit
은 생략해도 됩니다.
파라미터가 있는 함수는 변수명 먼저, 타입이 뒤에 옵니다.
fun add(a: Int, b: Int): Int {
return a + b
}
return
이 존재하면 반드시 반환 타입을 명시해야 합니다.
2. val
vs var
val
: 변경 불가능한 값 (value)var
: 변경 가능한 값 (variable)
kotlin복사편집fun hi() {
val a: Int = 10
var b: Int = 9
a = 100 // 오류! val은 재할당 불가
b = 100 // 가능
}
Kotlin은 타입 추론을 지원하므로, 타입 생략도 가능합니다.
val c = 100 // Int로 자동 추론
var name = "seoyoon" // String으로 추론
다만 선언만 하고 값을 나중에 할당하려면 타입이 반드시 필요합니다.
var e // 오류!
var e: String
3. 문자열 템플릿
Kotlin에서는 문자열 안에 변수나 표현식을 쉽게 삽입할 수 있습니다.
val name = "seoyoon"
println("My name is $name") // -> My name is seoyoon
변수 바로 뒤에 문자가 이어질 경우는 어디까지 변수인지를 알려주기 위해 {}로 감싸줘야 합니다.
println("My name is ${name}I am 30") // name과 I 사이에 공백이 없으므로 중괄호 필요
변수 + 변수 조합도 가능합니다.
val lastName = "jung"
val firstName = "seoyoon"
println("My name is ${firstName + lastName}")
특수문자 $
를 문자열로 출력하고 싶을 때는 \
를 사용합니다.
println("This is \$a") // -> This is $a
4. 주석
한 줄 주석:
//
여러 줄 주석:/***/
/**
* 여러 줄 주석 예시
*/
5. 조건식 – if
와 when
기본 if
문:
fun maxBy(a: Int, b: Int): Int {
return if (a > b) a else b
}
Kotlin은 삼항 연산자(?:
)를 지원하지 않지만, if
자체가 expression(값을 리턴하는 방식)이라 이런 식으로 쓸 수 있습니다.
when
문:
Java의 switch
문과 비슷하지만 조금 다릅니다.
fun checkNumber(score: Int) {
when (score) {
0 -> println("This is 0")
1 -> println("This is 1")
2, 3 -> println("This is 2 or 3")
else -> println("I don't know")
}
}
값을 반환하는 when
expression도 있습니다.값을 반환하는 표현식(expression)
으로 사용하는 경우에는 else
가 필수입니다.
val result = when(score) {
1 -> 1
2 -> 2
else -> 3 // 반드시 else 필요
}
범위 조건으로도 사용할 수 있습니다.
when(score) {
in 90..100 -> println("A")
in 10..80 -> println("B")
else -> println("C")
}
6. Expression vs Statement
Kotlin의 대부분은 expression 방식으로 값을 반환합니다.
fun maxBy2(a: Int, b: Int) = if (a > b) a else b // Expression
val result = when(score) {// Expression
1 -> 1
2 -> 2
else -> 3
}
Unit
을 반환하는 함수도 사실은 expression입니다.
Unit은 생략할 수 있는데 이 경우도 사실 Unit을 반환하는 것이기 때문에 expression입니다.
fun helloWorld(): Unit {
println("Hello~")
}
fun helloWorld(): {
println("Hello2~")
}
7. Array와 List
Kotlin의 리스트는 크게 두 가지로 나뉩니다.
List
: 불변 (immutable)MutableList
: 가변 (mutable)
val array = arrayOf(1, 2, 3)
val list = listOf(1, 2, 3)
서로 다른 타입이 섞인 경우 Any
타입으로 추론됩니다.
val array2 = arrayOf(1, "d", 3.4f)
val list2 = listOf(1, "d", 11L)
배열 값 변경
array[0] = 3 // 가능
list[0] = 2 // 오류 – List는 변경 불가
val result = list[0] // 값 가져오기만 가능!
MutableList (예: ArrayList)
val arrayList = arrayListOf<Int>()
arrayList.add(10)
arrayList.add(20)
val
로 선언해도 내부 값은 변경 가능합니다. 변수 자체에 새 리스트를 할당하려면var
로 선언해야 합니다.
val arrayList = arrayListOf<Int>()
arrayList = arrayListOf() // 오류 – arrayList가 val로 선언되어 있기 때문!
오늘은 이정도로 마무리..!
Subscribe to my newsletter
Read articles from seoyoon jung directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
