아래 책 공부하며 '새롭게 배운 점', '더 궁금해진 것', '자주 까먹는 부분'들에 대한 포스팅입니다.
코틀린 완벽 가이드 입문부터 활용까지, 필요한 지식 총망라!
페이지 704|ISBN 9791165218911|판형 규격외 변형
"2장 코틀린 언어 기초"
1. 주석
자바와 달리 코틀린은주석 안에 주석을 쓸 수 있음
/** * 여러 줄 주석 * /** 주석 안에 주석도 주석 처리 cf) 자바에서는 닫힘 쓰는 순간 주석 풀림 */ */ /** * 여러 줄 주석 * /** 하지만 '*/' */ 이렇게 닫힘 2번 쓰면 주석 풀려 에러 발생함 */ |
2. 코틀린에서 사용자 입력 받기 : readLine()
ㄴ> 표준 입력에서 한 라인을 읽어 문자열로 변환해주는 함수
2. property : 값을 그대로 읽고 쓰는 변수와 달리, property는 값을 읽거나 쓸 때 계산을 수행할 수 있다.
3. 타입추론(type interface) : 변수 선언 시 타입을 명시하지 않아도 대입되는 값에 따라 타입 도출해주는 코틀린 기능.
(컴파일러가 코드 문맥에서 타입을 도출해냄)
- 타입 추론된 변수에 다른 타입 대입 불가능
var a = 3
a = "a" // 에러발생
4. 띄어쓰기
val txt: String = "Hello"
5. 식별자 : 변수명, 함수명 등 프로그램에 정의되는 대상에 붙일 이름
-> 예약어(=하드 키워드)는 사용 불가
6. 배열
- 코틀린 배열 기본 타입 : Array<T>
- 배열 생성 함수는 모두 제네릭해서 호출 시 원소타입 'T'를 지정해야한다.
arrayOf(1,2,3) // [1,2,3] 배열 객체 생성
emptyArray<Int>() // 빈 배열 객체 생성
arrayOfNulls<Int>(3) // [null, null, null] 배열 객체 생성
방법2) 배열 생성 & 사이즈 지정 & (생성자를 통해) 디폴트값 설정하기
// 코틀린 배열 선언으로 생성자를 통해 디폴트값으로 채우기 가능
Array<Int>(3) { i -> i+1 } // [1,2,3] 배열 객체 생성
IntArray(3, {0}) // [0, 0, 0] 배열 객체 생성
- 생성자를 통해 람다식에서 it은 배열의 인덱스
- 배열 생성 시,
ㄴ> Array<Int> 는 모든 수를 Boxing하므로 안 좋은 방식
ㄴ> IntArray(10) 타입을 사용하는 것이 좋음 ex) IntArray(10){ 0 } , CharArrayOf('a')
- 객체 참조(주소값 참조, Call by Ref) 되지 않도록 동일한 별도의 배열 복사 함수
원본배열객체.copyOf() //전체 복사
원본배열객체.copyOf(복사할 크기) // 작으면 절삭, 크면 0으로 채움
- 배열 생성 후 사이즈 변경 불가능 But '+'연산으로 원소 추가한 새 배열 생성 가능
ex) val b = intArrayOf(1,2,3) + 4
- 배열1 == 배열2 : 원소 비교 아닌 참조(주소값) 비교함
- 배열1.contentEquals(배열2) : 원소 비교함
끝!