반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 모던 자바 인 액션
- @EnableScheduling
- @Data
- 검색 기능 확장
- 루씬 인 액션
- Java
- 커링
- K번째수
- 가장 큰 수
- 기능개발
- 크론 표현식
- @Getter
- 전화번호 목록
- @configuration
- 프로그래머스
- 영속 자료구조
- @Setter
- 고차원 함수
- 코딩 테스트
- 알고리즘
- 완주하지 못한 선수
- kubenetes
- 정렬
- 쿠버네티스
- 다리를 지나는 트럭
- 스프링 스케쥴러
- 롬복 어노테이션
- H-index
- 스택/큐
- 해시
Archives
- Today
- Total
Today I Learned
Java 개발자를 위한 코틀린 필수 사항 본문
728x90
코틀린은 Java를 사용할 때보다 훨씬 간결하게 코드를 작성할 수 있다.
더 적은 타이핑
- 세미콜론은 생략해도 된다.
- 변수타입 지정은 생략해도 된다.
- 클래스와 함수는 생략 가능하다.
- try-catch는 선택사항이다.
현명한 경고
- 사용하지 않는 파라미터에 대한 경고를 준다.
var 보다는 val
- 코틀린에서는 변수 이름을 먼저 쓰고 타입을 명시한다.(변수이름:타입)
val pi: Double = 3.14
- val은 java의 final과 비슷하게 값을 변경할 수 없다.
- 변수의 값을 바꾸려면 var을 사용하면 되지만 함수형 프로그래밍을 위해 피하는 것이 좋다.
향상된 동일성 체크
- Java의 equal() 메소드 or 코틀린의 == 연산자 : 값을 비교 (구조상의 동일성)
- Java의 == 연산자 or 코틀린의 === 연산자 : 참조 대상을 비교(참조상의 동일성)
- 코틀린의 == 연산자는 nullPointerException을 발생시키지 않고 null을 안전하게 다룬다.
문자열 템플릿
- 큰따옴표 문자열 안에서 $ 심볼을 변수 앞에 붙여주면 어떤 변수라도 문자열 안에 들어간다.
- 복잡한 명령문이라면 ${}로 감싸서 사용할 수 있다.
- $ 심볼 뒤에 변수 이름이나 표현식이 없거나 역슬래시가 붙으면 $ 심볼은 문자로 취급된다.
val price = 12.25
val taxRate = 0.88
val output = "The amount $price after tax comes to $${price * (1 + taxRate)}"
val disclaimer = "The amount is in US$, that's right in \$only"
println(output)
println(disclaimer)
The amount 12.25 after tax comes to $13.23
The amount is in US$, that's right in $only
RAW 문자열
- 큰따옴표 3개(""")를 입력해서 raw 문자열을 사용할 수 있다.
- 이스케이프 문자 없이 다양한 문자를 그대로 넣을 수 있다.
- 멀티라인 문자열 : + 연산자 없이 여러 줄의 문자열에 문자열 템플릿을 적용할 수 있다.
- 함수 안에서 raw 문자열을 사용하는 경우, 수직선(|) 문자를 사용하면 들여쓰기 공백을 제거할 수 있다.
표현식은 더 많이, 명령문은 적게
- 명령문 보다는 표현식이 좋다. 표현식은 결과를 리턴해주고, 어떤 상태도 변화시키지 않는다.
- 차이를 확인하기 위해 먼저 Java 같은 스타일로 코틀린 코드를 작성해보자.
fun canVote(name: String, age: Int): String {
var status : String
if (age > 17) {
status = "yes, please vote"
} else {
status = "nope, please come back"
}
return "$name, $statue"
}
println(canvote("Eve", 12))
- 명령문은 아무런 리턴값을 주지 않기 때문에, canVote()에서는 뮤터블 변수를 만들고 메소드 안에서 해당 변수를 수정해야 한다.
- 하지만 코틀린의 if는 명령문 대신 표현식으로 사용된다.
val status = if(age > 17) "yes, please vote" else "nope, please come back"
return "$name, $status"
728x90
'Kotlin > 다재다능 코틀린 프로그래밍' 카테고리의 다른 글
객체와 클래스 (0) | 2023.08.01 |
---|---|
오류를 예방하는 타입 안정성 (2) (0) | 2023.08.01 |
오류를 예방하는 타입 안정성(1) (0) | 2023.07.27 |
콜렉션 사용하기 (0) | 2023.07.27 |
외부 반복과 아큐먼트 매칭 (0) | 2023.07.21 |
Comments