코틀린/코틀린 문법

코틀린문법 5주차 강의 [심화]

정혜현 2024. 6. 12. 11:53

유용한 기능

자료형 변환

to자료형()

메소드로 자료형을 변환할 수 있다. 원래 값 자체를 바꾸는 게 아니라 형태를 변환시켜주는 것

문자를 숫자로 바꾸려면?

  • 정수 : Integer.parseInt() = toInt()
  • 실수 : .toDouble()

Integer는 싱글턴으로 선언된 클래스

Integer.parseInt() 와 Integer.valueOf()
문자열을 정수로 변환해주는 메소드. parseInt는 결과를 기본 자료형 Int로 반환해주고 valueOf는 객체를 생성해 참조 자료형 Int로 반환해준다.

 

 

객체 as 클래스명

as로 객체의 자료형을 변환할 수 있다. 상속관계에서 가능. OOP 5대 특징 중 가용성에 해당

  • 업캐스팅 : 자식클래스를 부모클래스의 자료형으로 객체 생성. 배열의 자료형이 부모 클래스 일 때 업캐스팅을 통해 자식 클래스의 객체도 들어갈 수 있다. 
  • 다운캐스팅 : 부모클래스를 자식클래스의 자료형으로 객체 생성. 부모 클래스의 자료형은 자식 클래스에 들어가려해도 부모클래스가 더 상위개념이므로 다운캐스팅 오류가 난다.

 

 

자료형 확인

변수명 is 자료형

is로 자료형을 확인할 수 있다.

 

 

 

인스턴스 복수 생성

  • Pair : 2개 리턴가능. Pair<파라미터 타입, 파라미터 타입> Pair(인자, 인자)
  • Triple : 3개 리턴가능. Pair<파라미터 타입, 파라미터 타입, 파라미터 타입> Pair(인자, 인자, 인자)

 

 

Scope Functions

이 부분은 너무 이해가 안돼서 따로 공부했다.

 

범위지정함수. 코드를 간결하게 만들어주는 범위함수

람다함수를 호출하면 임시범위가 생성된다. 수신객체 receiver (it, this)에 객체가 전달된다. 

 

지정 람다 : 수신객체를 확장함수처럼 사용하는 람다식(this)

일반 람다 : 수신객체를 인자로 사용하는 람다식(it)

 

let with run은 코드 블록의 람다결과를 반환하고 apply also는 수신객체 자체를 반환한다. 수신객체에 객체를 전달해 스코프 안에서 이름없이 사용할 수 있는 표준 라이브러리 this는 생략이 가능하다.

 

 

  확장함수 this 인자 it
결과 반환 with run let
객체 반환 apply also

 

let : ?.Null이 아닌 값으로 실행시키고 싶을 때, 
with : Null이 아닐 때만 써야한다. also :apply :  

run : 

 

 

 

 

확장함수

fun 어디에.어떻게() = 이렇게~

클래스에 메소드를 추가하여 원본을 해치지 않고 기능을 사용할 수 있다.

 

 

 

비동기 프로그래밍

순차적이지 않고 동시다발적 작업을 수행할 수 있다. 

 

 

 

쓰레드와 코루틴

프로세스 내 메인 쓰레드와 자식 쓰레드로 나눠져 있어 비동기 프로그래밍이 가능하다. 
코루틴은 쓰레드를 보다 나눠 가볍게 사용하여 효율적인 자원 할당이 가능하다.