코틀린 완벽 가이드 (길벗) 을 이용해 코틀린 공부하기 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 연산자가 없음.
: 배열 원소를 명시적으로 초기화 해야함.