Kotlin

    [Kotlin/Basic] 코틀린에서의 반복문

    [Kotlin/Basic] 코틀린에서의 반복문

    1. for - each //for each val numbers = listOf(1L, 2L, 3L) // : 콜론 대신 in을 사용함 for(number in numbers){ println(number) } 자바에서는 : 콜론을 사용하여 표현했지만 코틀린에서는 in을 사용하여 numbers안에 있는 변수를 차례대로 출력한다! 2. for for(i in 1..3){ println(i) } //downTo, step도 함수 for(i in 5 downTo 1){ println(i) } //1부터 5까지의 공차1인 등차수열을 생성 //공차를 2로 바꿈 for( i in 1..5 step 2){ println(i) } 2-1. for문은 자바하고 많은 차이점이 있다. 첫 번째 for문을 보면 자바에서는 ..

    [JETPACK개론] DataBinding 과 data class

    DataBinding TLOVER라는 앱을 론칭하면서 DataBinding을 계속 사용해왔고, 블로그에도 개념을 정리했었지만 강의를 들으면서 부족했던 부분을 보완하고 그 부분들을 정리하고자 한다. databinding ? 이름 처럼 데이터를 연결, 결합 해줄 수 없을까? 라고 생각해보면 된다. viewbinding을 사용했을 때 해당 뷰에 있는 id에 접근해서 값을 변경해주었다. 하지만 서버에서 받은 많은 데이터들을 활용하여 값을 변경해줄 때는 binding을 통하여 데이터를 한 번에 저장한다음 xml에서 변경하면 편리할 것이다!!! 바로 databinding을 사용하면 된다! 1. gradle 파일에 다음과 같이 작성하자 buildFeatures{ dataBinding = true } 2. xml파일안..

    [Kotlin/Basic] 코틀린에서의 제어문

    1. 코틀린에서의 if else fun validateScoreIsNotNegative(score : Int){ if(score !in 0..100){ throw IllegalArgumentException("${score}의 범위 이상") } } 자바에서의 if else문과 차이가 없다. 위에서 주의할 점은 자바에서는 if(score 100) 이렇게 표현했다면, 위의 코드처럼 0..100 이렇게 표현할 수 있다. 또 다른 예시를 살펴보자! fun getPassOrFail(score : Int) : String { return if(score > 50) { "P" }else{ "F" } } 여기서 자바하고와의 차이점을 발견할 수 있다. 자바에서 if~else는 Statement이지만, 코틀린에서는 Exp..

    [Kotlin/Basic] 코틀린에서의 연산자

    1. 연산자의 종류 자바에서 알고 있는 연산자는 단항연산자 : ++, -- 산술연산자 : +, -, *, /, % 산술대입연산자 : +=, -= 비교연산자 : > , money2){ println("1 > 2") } 이렇게 객체를 비교할 때 자주 사용하는 연산자로 사용하지만, 실제로 자동으로 compareTo를 호출해준다. 2. 비교연산자와 동등성, 동일성 자바에서는 동일성에 ==을 사용하고, 동등성에 equals..

    [Kotlin/Basic] 코틀린에서의 Type

    1. 변수의 타입 val number1 = 4 // val number2 : Long = number1 //Type mismatch //자바에서는 명시적으로 더 큰 타입으로 변경이 되었지만 코틀린에서는 안됨. //따라서 toLong() 을 붙여줘야함 val number2 : Long = number1.toLong() //자바에서는 암시적으로 가능했지만 //코틀린에서는 명시적으로 적어주어야함 println(number1 + number2) 자바에서는 Int와 Long을 더해주면 암시적으로 더 큰 타입으로 변경되어 연산이 가능했다. 하지만 코틀린에서는 불가능하다!! ㅠㅠ 따라서 위의 코드와 같이 Int와 Long을 더해주려면 .toLong을 붙여주어 number1를 Long타입으로 변경해주어야한다. 그럼 만..