반응형
공부하는데 참고한 자료입니다.(https://kotlinlang.org/docs/reference/basic-syntax.html)
Basic Syntax - Kotlin Programming Language
kotlinlang.org
Package
- Java와 동일
Function
- fun 함수명(파라미터명: 타입...): 리턴 타입
- fun 함수명(파라미터명: 타입...) = 리턴 값
- Java에서 void 역할은 리턴 타입을 Unit으로 하거나 생략하면 됨
Variable
- 상수는 선언할 때 val로 선언
- 변수는 선언할 때 var로 선언
- 전역으로 선언할 때는 Java와 동일
Comment
- Java와 동일
Templates
- 어떤 String 틀 안에 바로 변수 혹은 상수값, 식을 바로 넣어줄 수 있음
- StringBuilder 혹은 String.format 등을 대체하려고 나온 것으로 생각됨
- 편한 기능이지만 그래도 식을 직접 안에 넣는 것은 가독성이 안 좋아보이므로 이 부분만 주의
Conditional expressions
- if문이 단순했을 때 {}와 return 정도를 생략할 수 있음
- 이 부분이 편해진 건지는 잘 모르겠고 오히려 삼항연산자(?)에 익숙해진 Java 유저들은 굳이 필요한 걸까라는 생각이 들듯
- 가독성 측면에서 Java에 익숙하지 않은 사람이라면 이게 직관적일 수도 있을 것 같음
Nullable values and null checks
- nullable은 타입 뒤에 ?로 표시(단순히 @Nullable과는 다르게 컴파일 단계에서 걸러줌)
- ?가 없다면 해당 타입은 null이 무조건 아님을 의미(단순히 @NotNull 혹은 @NonNull과는 다르게 컴파일 단계에서 걸러줌)
- Annotation과는 다르게 강제적으로 컴파일 단계에서 알려주기 때문에 좋은 것 같음
Type checks and automatic casts
- Java에서 instanceof와 같지만 앞에 !를 줄 수 있음
for loop
- Java에서 instanceof와 같지만 앞에 !를 줄 수 있음
while loop
- Java와 동일
when expression
- Java의 select case문과 유사하지만 특이한 점은 when으로 나온 값을 바로 return 할 수 있음
- 범위 설정도 가능하고 값 여러 개 혹은 식도 가능함
- 마지막에 else를 둠으로써 위의 상황이 아닌 부분에 대해서 처리(select case문의 default 같은 느낌이 아니라서 더 나은 것 같음)
Ranges
- 시작..끝(시작 < 끝), 시작 downTo 끝(시작 > 끝) 형태로 표현하며 in 연산자를 통해 해당 값이 범위에 있는지 표현하며 !도 같이 쓸 수 있음
- for 문에서는 for(i in 1..5 step 2) 이런 형태로 쓸 수 있으며 옆에 step은 얼마씩 증가할지를 표현함. 다만 증감되는 값이 마이너스인 경우에도 플러스로 할 것. 예시 - for(i in 9 downTo 0 step 3)
Collections
- for문 iterating은 Java와 유사함(형을 생략하는 거 빼고)
- contains 대신 in을 통해서 해당 값이 있는지 체크 가능 <- when에서 쓸 수 있음
- Collection에서 filter, sortedBy, map, forEach 기능 제공
Creating basic classes and their instances
- Java 생성할 때와는 다르게 new가 없음
반응형