자바 개발자를 위한 코틀린 입문을 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 for-each(향상된 for문) java에서 향상된 for문을 사용하는 것과 같이 kotlin에서도 동일하게 사용한다. public static void main(String[] args) { List numbers = Arrays.asList(1L, 2L, 3L); for (long number : numbers) { System.out.println(number); } } fun main() { val numbers = listOf(1L, 2L, 3L) for (number in numbers) { println(number) } } 위 코드의 차이는 java에서..
자바 개발자를 위한 코틀린 입문을 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 IF문 java 코드와 kotlin 코드를 통해 한 번 확인해보자. private void validateScoreIsNotNegative(int score) { if (score < 0) { throw new IllegalArgumentException(String.format("%s는 0보다 작을 수 없습니다.", score)); } } fun validateScoreIsNotNegative(score: Int) { if (score < 0) { throw IllegalArgumentException("${score}는 0보다 작을 수 없습니다.") } } Type..
자바 개발자를 위한 코틀린 입문을 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 비교 연산자 kotlin에서 사용하는 비교 연산자는 java와 동일하다. 하지만 java와 다르게 객체를 비교할 때, 비교 연산자를 사용하면 자동으로 compareTo를 호출해준다. 우선 아래 java 코드를 먼저 확인해보자. public class JavaMoney implements Comparable { private final long amount; public JavaMoney(long amount) { this.amount = amount; } @Override public int compareTo(@NotNull JavaMoney o) { // o가 더 작..
자바 개발자를 위한 코틀린 입문을 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 기본 타입 java에서 사용하는 기본 타입을 kotlin에서도 동일하게 사용할 수 있다. 또한, kotlin에서는 타입을 지정해주지 않아도 선언된 기본값을 보고 타입을 추론한다. val num1 = 3 // Int val num2 = 3L // Long val num3 = 3.0f // Float val num4 = 3.0 // Double 기본 타입 변환 위와 같이 수 뒤에 어떠한 리터럴이 오느냐에 따라 타입이 바뀌게 된다. java에서의 기본 타입간의 변환은 암시적으로 이루어질 수 있다. int num1 = 10; long num2 = num1; System.out..
자바 개발자를 위한 코틀린 입문을 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 null 체크 java에서 아래 코드는 안전한 코드일까? public boolean startsWithA(String str) { return str.startsWith("A"); } java에서는 String 타입에 null이 들어갈 수 있다. 만약 str 변수에 null이 들어올 경우 NPE(NullPointerException)이 발생하게 된다. 이를 수정하기 위해서는 다음과 같이 변경할 수 있다. public class A { public boolean startsWithA1(String str) { if (str == null) throw new Illegal..
자바 개발자를 위한 코틀린 입문을 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 var VS val 모든 변수는 우선 val로 만들고, 꼭 필요한 경우 var로 변경한다. long number1 = 10L; final long number2 = 10L; long과 final long의 차이는 가변 / 불변의 차이를 나타낸다. 구분 설명 long 처음 값을 할당 받고 나서, 다시 한 번 값을 바꿔줄 수 있다. final long 한 번 값을 지정해주면 더 이상 바꿀 수 없다. 위 코드를 코틀린으로 변환하면 다음과 같다. // variable var number1 = 10L // value val number2 = 10L 코틀린에서는 모든 변수에 수정..