1. 스마트 캐스트란?
- 타입검사와 타입캐스트, 타입 강제 변환을 하나로 엮은 기능이다.
- 코틀린에서 타입검사는 is를 활용한다.
2. 코틀린 함수의 기본 구조
- if 문을 식으로 사용해서 return에 사용이 가능하다.
- 블록이 본문인 함수와 식이 본문인 함수의 차이 [ 그림 1,2 첨부 ]
- 식이 본문인 함수만 반환타입 생략이 가능하다.
3. 변수선언
- val은 변경 불가능한 참조를 저장하는 변수 자바로 말하자면 final에 해당하는 변수를 의미한다.
- var은 변경 가능한 참조다. 변수의 값은 바뀔 수 있고, 자바의 일반 변수에 해당한다고 생각하면 된다.
- var은 변수의 값을 변경할 수 있지만 변수의 타입은 고정돼 바뀌지 않는다. 다른 타입의 값을 저장하고 싶다면 변환함수를 작성해서 값을 변수의 타입으로 변환하거나, 값을 변수에 대입할 수 있는 타입으로 강제 형 변환을 해야 한다.
4. 문자열 템플릿
- 문자열 템플릿은 자바의 ("Hello , " + name + " ! ")과 동일한 기능이지만 더 간결하다. $을 사용하여 (" Hello, $name! ")으로 작성이 가능하다.
- 또한 (" Hello, ${name}! ") name을 { } 안에다 감싸는 방법도 있다. $를 문자열에다가 그대로 넣고 싶은경우 println(" \ $name") 과 같이 \ 을 사용하여 $를 이스케이프 시켜야 한다. 그럼 그대로 $name이 문자열 자체가 출력된다.
5. when
- when은 자바와 달리 끝에 break를 넣지 않아도 된다.
6. While
- while과 do-while이 존재하며 둘의 쓰임은 자바와 똑같다.
7. In
in 연산자를 사용해 어떤 값이 범위에 속하는지 검사할 수 있고, 반대로 !In도 가능하다.
in과 !in은 when문제에서도 사용이 가능하다. 범위는 문자에만 국한되지 않고, 비교가 가능한 클래스라면 그 클래스의 인스턴트 객체를 사용해 범위를 만들 수 있다.
오늘 깨달은 점은 다른 패키지 안에 있는 함수를 불러올 수 있다는 점. 원래 알고 있었으나 어떻게 사용해야 할지 잘 몰랐는데 앞으로는 겹치는 코드는 차라리 다른 파일을 import하여 그 안안에 작성한 함수를 불러 와야겠다. 여태까지 do-while은 한번도 사용해본적이 없다. 현재 앱에 사용할 코드가 있다면 리팩토링해서 진행해 보아야 겠다.
'기초를 모르면 나가리(코틀린 인 액션)' 카테고리의 다른 글
코틀린 constructor 주생성자, 부생성자 (1) | 2023.10.27 |
---|---|
코틀린 기초 람다식 , 람다 프로그래밍 (0) | 2023.10.20 |
코틀린 클래스, 객체, 인터페이스 (0) | 2023.10.17 |
코틀린 컬렉션과 확장함수 (0) | 2023.10.16 |
코틀린이란? 특징, 장점 및 정적타입과 함수형 프로그래밍 (0) | 2023.08.28 |