본문 바로가기

Android/Kotlin

[Android] Kotlin 공부 - (1) 기본 문법 훑어보기

반응형

공부하는데 참고한 자료입니다.(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가 없음

 

반응형