Kotlin

[Kotlin] - 코틀린 기본 문법 1

팡세영 2022. 7. 8. 11:00

코틀린 기본 문법

reference by Kotlin 공식 문서

Kotlin 구조


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 타입을 반환하는 함수


fun sum (a: Int, b: Int) : Int{  
    return a+b  
}

 

직접 값을 할당해주는 함수


fun sum(a: Int, b: Int) = a + b  

fun main(){  
  var a = 10  
  var b = 20  

  println(sum(a,b))     
}

 

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


fun print(a: Int, b: Int): Unit{  
    println("$a + $b = ${a+b}")  
}  

fun main(){  
  var a = 10  
  var b = 20  

  print(a,b)  
}

 

Unit 리턴 타입은 생략 가능


fun print(a: Int, b: Int){  
    println("$a + $b = ${a+b}")  
}    

 

스트링 템플릿

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


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)  
} 

 

조건문

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


fun max(a: Int, b: Int): Int{  
    if(a > b)  
        return a  
   else  
        return b  
}

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


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

 

NULL

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


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

 

자동 형 변환

1

반대의 경우

1

반복문

for-each문

1

인덱스를 사용하는 경우

1

While문

1

When 표현식

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

1

Range


// Java  
for(int i=0; i<10; i++){  
  ...  
}  

// Kotlin  
for(i in 0..x){     //0부터 1씩 증가하면서 x보다 작거나 같을 때까지 
    ...  
}

 


// 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