코틀린(Kotlin)

코틀린(kotlin) : 기본 문법에 대하여

알통몬_ 2018. 1. 24. 16:48
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


이번 포스팅에서는 코틀린 기본 문법에 대해 공부합니다.

swift를 해보신 분들은 느끼시겠지만 코틀린은 swift와 문법이 굉장히 유사한데요.

그 이유는 swift 가 코틀린을 보고 만들었기 때문입니다.


패키지 정의

패키지는 소스파일의 가장 위에 정의합니다.

1
2
3
package org.mon.altong
 
import java.util.*
cs


함수 정의

파마리터와 반환형이 있는 함수

1
2
3
4
5
6
fun add( num1 : Int, num2 : Int) : Int {
    return num1 + num2
}
 
// 이렇게 줄여서 선언할 수도 있습니다.
fun add(num1 : Int, num2 : Int) = a + b
cs

파라미터는 있고, 반환형이 없는 함수

자바에서는 void 이지만, 코틀린에서는 Unit 입니다.

1
2
3
4
5
6
7
8
9
fun add(num1 : Int, num2 : Int) : Unit {
    print(${a+b})
}
 
// Unit은 생략가능
fun add(num1 : Int, num2 : Int)  {
    print(${a+b})
}
 
cs


변수와 필드 정의

val : 한 번만 값을 할당할 수 있는 지역 변수

자바의 final과 같다고 보시면 됩니다.

var : 변하는 수, 말 그대로 변수, 값이 변경될 수 있습니다.

1
2
3
4
5
6
7
8
9
10
// 선언 방법
val a : Int = 10 // 타입 명시
val a = 10 // 변수 타입을 명시하지 않으면 알아서 추론함.
val a : Int // 변수만 선언
= 10 // 후에 초기화
 
var b : 100 // 타입을 추론합니다.
print(b) // 100
+= 1
print(b) // 101
cs

변수를 함수 내부에서 선언하게 되면 지역 변수이고, 

클래스 내부에 선언하게 되면 필드입니다.

지역 변수의 경우 해당 함수가 종료되면 같이 사라지지만, 필드는 그렇지 않습니다.

자바에서의 개념과 같습니다.


주석 사용

주석은 자바와 같습니다.

한줄 주석은 //

여러줄 주석은 /* */

1
2
3
4
5
6
// 주석
 
/*
    이것은 주석입니다.
    주석주석
*/
cs


문자열 

1
2
3
4
5
6
7
8
9
10
var str : String = "문자열사용"
 
// 문자열 안에 다른 변수 사용하기
var a : Int = 1
 
var str2 : String = "a 는 $a이다"
 
= 10
 
str  = "${str2.replace("이다","이었다")},  지금은 $a 이다."
cs


if ~ else 조건문

1
2
3
4
5
6
7
8
9
10
fun method1( a : Int, b : Int ) : Int {
    if (a > b) {
        return a    
    } else {
        return b    
    }
}
 
//  아래처럼 간단하게 표현할 수도 있음.
fun method1( a : Int, b : Int= if (a > b) a else b
cs


Null 값 처리하기

함수의 반환 값으로 Null 값이 올 수도 있다면, 반환 타입에 ?를 붙여주어야 합니다.

1
2
3
4
5
6
// 아래처럼 함수를 선언할 경우
// str 값이 정수인 문자라면 정수를 반환하고
// 정수가 아니라면 null을 반환합니다.
fun parseInt(str : String) : Int? {
    return str.toIntOrNull()
}
cs


for 문

1
2
3
4
5
6
7
8
9
10
11
// 읽기만 가능한 리스트 생성
val fruits = listOf("grape""banana""apple")
// 반복문1
for ( fruit in fruits) {
    println(fruit)
}
 
// 반복문2
for ( index in fruits.indices) {
    printin("fruit at $index is ${items[index]}")
}
cs


while 문

1
2
3
4
5
6
val fruits = listOf("apple""banana""kiwi")
var i = 0
while ( i < fruits.size) {
    println("fruit at $i is ${items[i]}")
   i++
}
cs


when 문

1
2
3
4
5
6
7
8
9
10
11
// switch 문과 유사한데요.
// 다른 점이 있다면 하나의 타입만들어가야하는
// switch 문과 달리 when 문에는
// 여러 타입이 들어가도 상관 없다는 점입니다.
when (obj) {
    10               -> "Ten"
    "Hi"    -> "Greeting"
    is Long    -> "Long Type"
    !is String -> "Not a string"
    else          -> "Unknown"
}
cs


if문 사용 시 조건에 정수가 들어간다면, 범위형식을 사용할 수 있습니다.

1
2
3
4
5
val i = 10
val j = 7
if( j in 1..i ) {
    print("True")
}
cs

위 조건문은 변수 j가 1~i(10) 사이에 존재하는지 검사하는 조건문입니다.

1
2
3
4
val j = 2
for (j in 1..5) {
    print(j)
}
cs

반복문에서도 사용할 수 있습니다.


여기까지 코틀린의 기본 문법에 대해서 간단하게 알아보았는데요.

맛보기였습니다 ㅎㅎ


다음 포스팅부터 코틀린에 대해 자세히 공부합니다~감사합니다.

반응형