Home 코틀린 기본 문법 정리
Post
Cancel

코틀린 기본 문법 정리

코틀린 기본 문법

reference by Kotlin 공식 문서

Kotlin 구조

1
2
3
4
5
6
7
8
9
package kotlinproject

fun main(){

println("Hello World")

}

  • .kt 확장자를 가진다.

  • package, import 선언부는 자바와 동일

  • 함수의 fun 키워드로 시작한다.

  • 리턴 타입은 함수명() 뒤쪽에 명시

  • 코틀린은 문장의 끝을 세미콜론으로 명시하지 않음


변수 타입, 정의 및 초기화

  • 데이터 타입에 관계 없는 상수는 val, 변수는 var 로 선언

  • 데이터 타입을 명시하지 않아도 할당 해주는 값에 따라 자동으로 결정됨

스크린샷 2022-02-17 오후 5 32 28

val는 자바와 final과 같으므로 다른 값으로 재 할당할 경우 위와 같이 오류가 난다.

1

위의 경우는 var 키워드로 num 변수를 int 형으로 타입을 정하였는데,

아래에서 String으로 타입을 재할당 시도를 하여서 컴파일 오류가 나는 경우


변수 정의

코틀린에서 변수를 선언할 때 초기화를 하지 않고 정의만 할 경우 아래와 같이 타입을 명시해줘야 함

1


변수 초기화

초기화는 아래와 같이 타입에 맞는 값을 할당해주면 된다

1


함수 정의

두 개의 Int 타입 파라미터를 전달 받아 Int 타입을 반환하는 함수

1
2
3
4
5
fun sum (a: Int, b: Int) : Int{  
    return a+b  
}


직접 값을 할당해주는 함수

1
2
3
4
5
6
7
8
9
10
fun sum(a: Int, b: Int) = a + b  
  
fun main(){  
  var a = 10  
  var b = 20  
  
  println(sum(a,b))     
}


리턴 값이 없는 함수는 Unit (자바의 void)으로 정의

1
2
3
4
5
6
7
8
9
10
11
12
fun print(a: Int, b: Int): Unit{  
    println("$a + $b = ${a+b}")  
}  
  
fun main(){  
  var a = 10  
  var b = 20  
  
  print(a,b)  
}


Unit 리턴 타입은 생략 가능

1
2
3
4
5
fun print(a: Int, b: Int){  
    println("$a + $b = ${a+b}")  
}    


스트링 템플릿

자바에서 String 클래스가 가지고 있는 format 메서드와 유사한 기능을 한다.

1
2
3
4
5
6
7
8
9
10
11
12
fun main() {  
  var a = 1  
  val str1 = "a is $a"  
  
  a = 2  
  var str2 = "${str1.replace("is", "was")}, but now is $a"  
  
  println(str1)  
  println(str2)  
} 


조건문

조건문 사용법은 자바와 동일

1
2
3
4
5
6
7
8
fun max(a: Int, b: Int): Int{  
    if(a > b)  
        return a  
   else  
        return b  
}

하지만 코틀린에서는 아래와 같이 표현식으로 나타낼 수 있음

1
2
3
fun max(a: Int, b: Int) = if (a > b) a else b


NULL

Null값을 허용하는 경우 타입 뒤에 ? 를 명시해주면 된다.

1
2
3
4
5
fun parseInt(str :String) : Int? {  
    return str.toInt()      // 리턴 타입이 기본적으로 Int형이고, null일 수 도 있음 
}


자동 형 변환

1


반대의 경우

1


반복문

for-each문

1


인덱스를 사용하는 경우

1

While문

1


When 표현식

when 표현식은 자바의 switch 문과 유사하다

1


Range

1
2
3
4
5
6
7
8
9
10
11
// Java  
for(int i=0; i<10; i++){  
  ...  
}  
  
// Kotlin  
for(i in 0..x){ 	//0부터 1씩 증가하면서 x보다 작거나 같을 때까지 
    ...  
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Java  
for(int i=0; i<10; i+=2){  
  ...  
}  
  
// Kotlin  
for(i in 0.. 9 step 2){  		// 0 ~ 9까지 2씩 증가
    ...  
}  
  
for(i in 9 downTo 0 step 2){  	// 9 ~ 0까지 2씩 다운
      
}


인덱스가 특정 범위를 벗어 났는지 확인하려면 아래와 같이 ! 연산자를 in과 함께 사용

1

This post is licensed under CC BY 4.0 by the author.