SELF STUDY/Kotlin

[Kotlin] 코틀린 언어 특징, 언어 기초

호이호이호잇 2023. 8. 9. 23:26
728x90
반응형

코틀린 완벽 가이드 (길벗) 을 이용해 코틀린 공부하기 1일차 (23/8/8)

오늘은 어제 공부한거 정리하기~

달달 외우면서 하기 보다는 그냥 읽으면서 익히는 용도로 공부하는 중이다.

 

모르는 것들만 정리해보겠음!

 

Chapter 1. 강력하고 실용적인 코틀린

Kotlin 언어 특징 : 안정성, 간결성, 상호 운용성

- 안정성 : 타입 추론 / Null이 될 수 있는 타입 / 스마트 캐스트 (타입 변환 / 타입 캐스트 오류 방지)

- 다중 패러다임 : 코틀린 : 객체 지향 + 함수 형 프로그래밍 지원 + 도메인 특화 언어 (DSL) + 동시성 프로그래밍 (코루틴 지원)

  * 자바 : 객체 지향 패러다임 

  * 함수 형 프로그래밍 : 함수를 다른 값(변수)과 동일하게 사용

- 간결성과 표현력 : Getter, Setter, 익명 class 코드 제거

- 상호 운용성 : 자바와 상호 운용성 있음 (요새는 자바 스크립트, 네이티브 언어에도 있음)

- 다중 플랫폼 지원 : 초기에는 JVM만 가능했는데, 요새는 브라우저, Node, Linux, Mac, Window 다 지원

 

Capter 2. 코틀린 언어 기초

△ 주석

: 여러 줄 주석 여러 번 사용 가능

/* 
  hihi
  /* 
    haha 
    */
  hihi
*/

△ 변수

- Val : Immutable value (불변 변수) 

         : Java 에서 final

val n = 15 // 이런 식으로 바로 값을 선언하는 것이 아니면, 미리 타입 지정을 해야함.
val n : Int // 타입 지정

- Var : Mutable value (가변 변수)

var s = 0
s = s+1
s = s+2

△ !!

: not-null assertion 단언

: null 일 경우 예외를 발생시킴.

 

△ NaN

: 그 어떤 값과도 같지 않음. 다른 NaN와도 같지 않다.

 

△ 문자열 템플릿

: $변수명, ${함수}

  -> ex) $name, ${Date()}

"Hello, $name!\nToday is ${Date()}

△ Raw String """

: 특수문자를 바로 사용가능함.

val message = """
    Hello, $name!
    Today is ${Date()}"""

위와 같은 결과 값을 보이지만, 엔터에 \n 을 쓰는가 안쓰는가의 차이!

 

△ String 

- lastIndex

"Hello!".length // 6
"Hello!".lastIndex // 5

- String 끼리 == , != 사용 가능

   equals() 호출 할 필요 없음.

- 사전식 순서로 비교 가능 ( < , > )

"abc" < "cba"
"123" < "34"

△ 배열

- 정의 : Array<T>

val a = emptyArray<String>()
val b = arrayOf("hello", "!") // 타입 추론 가능

- 배열 생성 후 길이 변경은 불가능 하나 연산으로 새로운 배열을 만드는 것은 가능함.

val b = intArrayOf(1,2,3) + 4

 

+ 람다 : 인덱스를 기반으로 값을 계산하는 식을 정의

ex) val a = Array(size){(it+1)*(it+1)}

- it : 인덱스를 표현하는 변수

val a = Array(3){ (it+1) * (it+1) } // {1,4,9}

+ 코틀린에서는 new 연산자가 없음.

   : 배열 원소를 명시적으로 초기화 해야함.

728x90
반응형