코틀린 시작 (3 고급문법)

이재민·2022년 5월 20일
0

kotlin

목록 보기
3/5

람다

람다식은 마치 value처럼 다룰 수 있는 익명함수이다.
메소드를 파라미터로 넘겨줄 수 있다.
리턴값으로 메소드를 받을 수 있다.

람다의 기본정의
val lamdaName : Type = { argumentList -> codeBody }

위와같이 사용 할 수 있다.


이렇게도 가능.


다음과 같이 파라미터를 두개를 받아서 사용가능 하다.

확장 함수

다음과 같이 입력형식 출력형식을 지정해서 this를 이용하여 받을 수 있다.
사용은 출력형식 그대로 String타입인 변수 하나 a.pizzaIsGreat(람다식을)()사용해주면 된다.


다음과 같이 함수안에 람다식을 이용하여 만들 수 있다. 함수를 만들었기에 리턴값을 람다식을 이용하여 린턴해준다. 여기서 this는 String을 가르키고 it은 (Int)를 가르킨다. it 파라미터가 하나일때만 가능.

람다의 리턴


다음과 같이 람다의 리턴은 꼭 리턴의 벨류타입을 지정해야한다.


Boolean 타입을 반환하는 invokelamda 함수를 생성해준후 람다를 반환해주는 함수
사용:

메인문에서 람다를 선언해주고 그 람다는 4.3213의 수와 같은지 확인해주는 람다이다.
파라미터가 한개일때 쓸 수 있는 it을 통해 다음과 같이 값을 비교할 수 있다.

맨 처음 출력값은 invokelamda의 리턴 람다 값 5.2343의 값과 4.3213이 다르기에 false가 나오고
두번째와 세번째는 값이 3.22보다 크기에 true가 나온다.
여기서 두번째와 세번째를 보면 알 수 있듯이 소괄호를 생략하여 쓸 수 있다.

데이터 클래스

데이터를 담는 그릇이 되는 클래스

좀 더 보기쉽게 사용자를 위해 만들어진 클래스이다.

이렇게 데이터클래스 Ticket, 그냥 클래스 TicketN을 만들고 각각의 객체를 생성 해주고 그 객체이름을 출력했을 떄 원래 클래스의 경우 주소값이 나오지만 데이터 클래스의 경우 사용자가 보기 쉽도록 클래스안의 정보를 보여준다.

Companion object

자바의 스태틱 대신에 사용하는 정적 메소드

상속 받을 수 있다. 만약 상속을 받으려면 상속 받으려는 인터페이스에 있는 메소드를 오버라이딩 해주어야한다.

Object

컴파일 될 때 한번만 생성된다. 따라서 불필요한 메모리를 줄일 수 있다.

이 부분은 잘 모르겠다. 나중에 다시 공부할 생각

코틀린 2편 고급편
https://www.youtube.com/watch?v=Q5noYbbc9uc

다음
https://www.youtube.com/watch?v=M1e2tLnzVPo

profile
재민

0개의 댓글