Kotlin 입문_Chap01 [변수, 타입, 연산자]

JJ Kim·2022년 11월 16일
1

코틀린

목록 보기
1/2
post-thumbnail

코틀린

IntelliJ IDEA의 개발사 JetBrains에서 2011년에 공개한 오픈 소스 프로그래밍 언어. JVM 기반의 언어.

  • Java와 유사하지만 더 간결한 문법과 다양한 기능을 추가
  • Java와의 상호 운용이 100% 지원
  • 구글이 안드로이드의 공식 언어로 Kotlin을 추가
  • 자바를 사용했을 때 보다 코드량이 비약적으로 감소하고 생산성이 대폭 향상

이러한 특징 때문에 많은 곳에서 자바가 코틀린으로 대체되고 있고 최신 언어인 코틀린을 다룰 줄 아는 것은 굉장한 장점이 될 것 같아 코틀린 문법 공부를 시작하고 있는 중이다.

1. 변수

-- 변수 작성법 --
var number : Long? = 10L
  • 모든 변수에 var/val을 붙임
    var : 변경가능
    val : 변경불가
  • 타입 명시적 작성 X -> 타입 추론 자동
  • 기본(원시)타입과 참조타입 구분을 안해줘도 됨
  • Null이 들어갈 수 있는 변수는 타입 뒤에 ? 작성 (다른 타입으로 간주됨)
  • 객체 인스턴스화 new 작성 X

2. NULL 처리

  • 코틀린은 Null이 들어갈 수 있는 타입은 다르게 간주 (한 번 Null 검사 시 non-null임을 컴파일러가 알 수 있음)
  • Null이 아닌 경우에만 호출되는 Safe Call(?.)이 있음.
  • Null인 경우에만 호출되는 Elvis 연산자(?:)가 있음.
  • Null이 절대 아닐 때 사용할 수 있는 not null 단언(!!)이 있음.
//str이 Null이 아니면 startsWith 작동. Null이면 Null 반환
return str?.startsWith("A")
//str이 Null이 아니면 startsWith 작동. Null이면 false 반환
return str?.startsWith("A") ? : false
//str이 Null이 아니면 startsWith 작동. Null이면 NPE 에러
return str!!.startsWith("A")
  • Kotlin에서 Null이 들어갈 수 있는 자바 코드를 사용할 때는 플랫폼 타입에 유의해야 함.

3. 타입

  • 기본 타입들 간의 변환은 명시적으로 이루어짐
  • is, as를 사용해 타입을 체크하고 형변환을 한다.
  • Any 키워드는 코틀린에서 모든 자료형의 슈퍼 클래스이다. (Java의 Object)
  • Unit 키워드는 함수의 반환이 없다는 것의 표시 (Java의 Void)
  • Nothing 타입은 항상 예외를 발생시킴 (의미 있는 데이터가 없다는 것을 명시적으로 표현 - 잘 쓰이지는 않음)
  • 문자열을 가공할 때 ${변수}를 사용해서 데이터를 받아온다.
  • 문자열에서 특정 문자를 가져올 때 배열 인덱스처럼 [ ] 를 사용한다.
val a : Any = "abc" //any 사용

//a 타입 확인
if(a is String) {
	val b : String? = a
    println("${a[0]}") //a의 첫번째 글자
    println("b는 $b") //b 출력
}else{
	val b : Int? = a as? Int //a Int 형 변환
    println("b는 $b")
}

4. 연산자

  • 단항, 산술, 대입 연산자 Java와 동일
  • 비교 연산자 Java와 동일하나 객체끼리도 자동으로 compareTo를 사용해주어 비교 가능하다.
  • Java의 ==, equals가 코틀린에서는 ===, == 이다.
  • in/!in (포함 연산자) ..([a..b] ->a부터 b까지의 범위 객체 생성) 같은 연산자가 있다.
  • 객체마다 연산자를 직접 정의 가능하다.
profile
소확행을 찾는 개발자

0개의 댓글