Kotlin기초 2

Tadap·2023년 10월 10일

Kotlin

목록 보기
2/6

1. 흐름제어

  1. IF - if(conditino){} else{}
  2. WHEN - when(condition){}
when (x) {
    is Foo -> ...
    is Bar -> ...
    else   -> ...
}
  1. 3항연산자는 미존재, if를 3항연산자로 사용 - if (condition) true else false
  2. Ranges - 범위는 ..연산자를 이용한다.
    숫자 뿐 아니라 문자(char)도 가능하다. 문자이기 때문에'a' 이렇게 감싸야 한다.
    아래 데이터는 중복하여 적용 가능하다.
    1. 증가는 .. ex) 1...4 = 1, 2, 3, 4
    2. 미포함 증가는 ..< ex) 1..>4 = 1, 2, 3
    3. 감소는 downTo ex) 4 downTo 1 = 4, 3, 2, 1
    4. 일정 범위 증가는 step ex) 1...5 step 2 = 1, 3, 5

2. 반복문

  1. FOR
for(condition){}

이때 condition은 변수 in range 로 주어진다

for(i in 1..5){}

range는 ..연산자 말고 list를 이용할 수도 있다

val mutableListOf = mutableListOf("testA", "testB", "testC")

for (data in mutableListOf) {
	println(data)
}
  1. WHILE
while(condition){
}
  1. DO-WHILE문
do{
//action
}
while(condition)

3. 함수

기본구조는 여기서 설명했다.
리턴 타입을 정의할려면 변수에서 타입 정의하는것처럼 : 뒤에 리턴 타입을 정의해주면 된다.

fun test(x : Int, y : String) : Int{
    return 1
}

그리고 변수가 넘어갈 때 특정한 값으로 고정해서 넘어갈 수 있다.

fun test(x : Int, y : String = "test") : Int{
    return 1
}

위처럼 고정해 두면 값이 없으면 기본값이 들어간다.

단일표현식 함수

fun sum(x: Int, y: Int): Int {
    return x + y
}

fun sum(x: Int, y: Int) = x + y

위 두가지는 같은 함수이다.

람다식

val s = { string: String -> string.uppercase() }("hello")
{변수명: 타입 -> 매서드}(데이터)
이렇게 작동한다.
filter, map 등 자바와 동일한 여러 매서드를 지원한다.

val test : (String) -> String = { string -> string.uppercase() }
위는 기능유형이라는 건데 test에 오른쪽 함수를 넣는 과정이다.
그러면 test에 값을 설정하면 오른쪽 값이 자동으로 설정된다.
이때 타입을 설정 해 줘야 하는데 위처럼 작동한다.

간단히 생각해서 val variableName : type 인데 type 위치에 함수를 넣을 수 있다.
이때 타입을 설정해줘야 하고 그건 위에 예시처럼 설정한다.

함수도 위와 같이 설정 가능하다.

fun test2(variable: String): (String) -> Int ={string -> string.toInt() }

0개의 댓글