정리- try catch finally 구문은 문법적으로 완전히 동일하다→ Kotlin에서는 try catch가 expression이다- Kotlin에서 모든 예외는 Uncheked Exception이다- Kotlin에서는 try with resources 구문이 없고, 코틀린의 언어적 특징을 활용해 close를 호출해준다 try catch finally 구문주어진 문자열을 정수로 변경해보자 fun parseIntOrThrow(str: String): Int { try{ return str.toInt() } catch (e: NumberFormatException) { throw IllegalArgumentException("주어진 ${str}은 숫자가 아닙니다") }}- ..
정리- for each문에서 Java는 콜론(:) Kotlin은 in을 사용한다- 전통적인 for문에서 Kotlin은 등차수열과 in을 사용한다- 그 외 for문, while문 do while문도 문법은 동일하다 for - each문숫자가 들어있는 리스트를 하나씩 출력해보자fun main() { val numbers = listOf(1L, 2L, 3L) for (number in numbers) { println(number) }} Java와는 다르게 콜론(:) 대신 in을 사용한다.in 뒤에는 추가적으로 Iterable이 구현된 타입이라면 모두 들어갈 수 있다. 전통적인 for문fun main(){ for (i in 1..3){ println(i) }} 1..3..
정리- if / if - else / if - else if - else 모두 Java와 문법이 동일하다. → 단, Kotlin에서는 Expression으로 취급된다. → 때문에 Kotiln에서는 삼항연산자가 없다- Java의 switch는 Kotlin에서 when으로 대체되었고, when은 더 많은 기능을 갖는다 if문 + Expression과 Statement단순 if문의 경우 Java 다르지 않다if (조건) { } if - else문의 경우에는?fun getPassOrFail(score: Int): String { if(score >= 50) { return "P" } else { return "F" }}내용 자체에는 차이점이 없지만,Java에서 if..
정리- 단항 연산자, 산술 연산자, 산술대입 연산자는 Java와 동일하다- 비교 연산자 사용법도 Java 동일하지만, 객체끼리도 자동 호출되는 compareTo를 이용해 비교 연산자를 사용할 수 있다- in / !in / a..b / a[i] / a[i] = b 와 같이 코틀린에서 새로 생긴 연산자도 있다- 객체끼리의 연산자를 직접 정의할 수 있다 단항 연산자 / 산술 연산자- 단항 연산자: ++ --- 산술 연산자: + - * / %- 산술대입 연산자: += -= *= /= %= 비교 연산와 동등성, 동일성비교 연산자- 비교 연산자: > >= Java와 다르게 객체를 비교할 때 비교 연산자를 사용하면 자동으로 compareTo를 호출해준다fun main() { val money1 = Java..
정리- 코틀린의 변수는 초기 값을 보고 타입을 추론하며, 기본 타입들간의 변환은 명시적으로 이루어진다- 코틀린에서는 is, !is, as, as?를 이용해 타입을 확인하고 캐스팅한다- 코틀린의 Any는 Java의 Object와 같은 최상위 타입이다- 코틀린의 Unit은 Java의 void와 동일하다- 코틀린에 있는 Nothing은 정상적으로 끝나지 않는 함수의 반환을 의미한다- 문자열을 가공할 때 ${변수}와 """ """ 를 사용하면 깔끔한 코딩이 가능하다- 문자열에서 문자를 가져올 때는 Java의 배열처럼 []를 사용한다 기본타입코틀린에서는 선언된 기본 값을 보고 타입을 추론한다val number1 = 3 // Intval number2 = 3L // Longval number3 = 3.0f // ..
반환타입에서도 null이 들어갈 수가 있다fun startsWithA1(str: String?): Boolean { if(str == null){ throw IllegalArgumentException("null이 들어왔습니다") } return str.startWith("A")}fun startsWithA2(str: String?): Boolean? { if(str == null){ return null } return str.startWith("A")}fun startsWithA1(str: String?): Boolean { if(str == null){ return false } return str.startWith("A")} Safe Call: null이 아니면 실..