코틀린

코틀린 1편

태인킴 2020. 9. 16. 21:30
반응형


1. 코틀린 메인 함수

fun main() {
    println("Hello World!")
}

fun 키워드를 사용하고, main 함수명을 사용 합니다. 코틀린에서는 세미클론이 생략 가능 합니다.

 

 

2. 함수 반환값

fun helloWorld2() : Unit {
    println("Hello World!")
}

// Unit일 경우 반환값 생랼 가능
fun helloWorld2() {
    println("Hello World!")
}

함수 끝의 :(클론) 과 함께 반환값을 써줍니다. Unit은 java에서 void 와 같이 반환값이 없다는 뜻이고, Unit는 생략 가능 합니다.

 

 

3. 함수의 파라미터 

fun helloWorld2(a : Int, b : Int) {
    println("Hello World!")
}

파라미터의 자료형은 변수명 뒤의 클론(:)과 함께 위치 합니다.

 

 

4. val vs var

val a : Int = 10
a = 100 //Error

var b : Int = 20
b = 100

val은 value의 약자로, '상수'를 의미 합니다. var은 variation의 약자로 '변수'를 의미 합니다. 

 

 

5. String 템플릿

fun main() {
    val name : String = "abc"
    val name2 = "abc" // String 생략 가능
    println("test : $name")
    println("test2 : ${name2}")

    var age = "20"
    println("test3 : ${name + age}")
    println("test4 : ${1 == 0}")
}

출력 결과

test : abc
test2 : abc
test3 : abc20
test4 : false

'$'를 String 타입 앞의 붙여 호출 할 수 있습니다. 또한 ${} 달러 기호와 중괄호를 사용하여 호출 할 수도 있습니다.

 

 

6. 조건식

fun main() {
    println("maxBy : ${maxBy(2, 1)}" )
    println("maxBy2 : ${maxBy2(2, 1)}" )
}

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

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

출력 결과

maxBy : 2
maxBy2 : 2

코틀린에서는 삼항 연사자를 사용 할수 없습니다. 대신에 maxBy2 함수 처럼 반환값을 '=' 연산자를 사용하여 if문을 한줄로 표현 할 수 있습니다.

 

 

7. switch문 대신 when문

fun main() {
    checkNum(0)
    checkNum(2)
    checkNum(5)
}

fun checkNum(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")
    }
}

출력 결과

this is 0
this is 2 or 3
I don't know

switch문 대신에 when절을 사용 할수 있습니다. 클론(:) 대신 화살표(->)를 사용 합니다. 이 경우에는 else 구문은 생략 가능 합니다.

 

 

8. when을 반환 할 경우, else 를 꼭 써줘야 함(Expression 이기 때문)

fun main() {
    checkNum(0)
}

fun checkNum(score : Int) {
    var b : Int = when(score) {
        1 -> 1
        2 -> 2
        else -> 3
    }
    println("b : ${b}")
}

출력 결과

b : 3

when 절을 이용해서 반환값으로 사용 할 경우에는 꼭 else 구문을 넣어줘야 합니다.

 

 

9. when절

fun main() {
    checkNum(10)
}

fun checkNum(score : Int) {
    when(score) {
        in 90..100 -> println("you are genius")
        in 10..80 -> println("not bad")
        else -> println("okay")
    }
}

출력 결과

not bad

when 절에서 in 키워드 와 함께 (..)을 사용해서 90 이상 100 이하(in 90..100) 을 표현 합니다. 

 

 

10. Expression vs Statement

// b의 연산 값을 대입해 주므로 Expression
var b : Int = when(score) {
    1 -> 1
    2 -> 2
    else -> 3
}

// Statement
when(score) {
    in 90..100 -> println("you are genius")
    in 10..80 -> println("not bad")
    else -> println("okay")
}

연산 후 반환값을 만들면 Expression 이고, 만들지 않으면 Statement 입니다. 코틀린의 모든 함수는 Unit를 리턴 하기 때문에, 모든 함수는 Expression 입니다.

반응형

'코틀린' 카테고리의 다른 글

코틀린 6편 (lateinit)  (0) 2020.11.13
코틀린 5편 (data class, object, companion object)  (0) 2020.11.11
코틀린 4편 (람다 Lamda)  (0) 2020.11.11
코틀린 3편 (클래스 생성자와 상속)  (0) 2020.11.10
코틀린 2편  (0) 2020.11.10