ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2022.05.02 기록장
    TIL 2022. 5. 2. 01:32

    ToDo

    • 코틀린 공부
    • 리액트 튜토리얼

    Done

    • 코틀린 공부

     

    Weekly goal

    • 코틀린 공부
    • 리액트 공부
    • 피드백 정리

     

    람다 사용
    - 라이브러리 함수의 maxBy 사용
    run 사용
    - run은 매개변수로 받은 람다를 실행 시키는 함수
    람다에서 마지막 람다는 괄호 밖으로 뺄 수 있다
    - 람다를 인자로 받는 함수일 경우 마지막 람다는 밖으로 뺄 수 있다
    람다에서의 it
    - 람다의 파라미터가 하나뿐이고 타입을 컴파일러가 추론가능하면 it사용가능
    람다가 포획한 변수
    - forEach 람다 내붕서 clientError와 serverError를 사용한다
    - java와 달리 외부의 final이 아닌 변수도 접근을 하며 값을 변경시키는데 이를 람다가 포획한 변수라 그런다
    - 만약 포획한 변수가 있는 람다가 나중에 반환되어 다른 곳에서 사용되어도 여전히 포획한 변수를 읽거나 쓸 수 있다
    - 이를 가능하게 하는 이유는 코틀린이 컴파일시 final이 아닌 변수는 Ref클래스로 감싸고 해당 class를 final로 가지기 때문이다. 내부는 final이 아니기에 변경이 가능하고
    flat는 collection을 하나로 합친다
    - 여러개의 collection을 하나의 collection으로 합친다
    flat는 언제 사용되는가
    - 리스트의 리스트가 있을 경우 사용가능
    - 중복제거는 flatMap을 떠올릴 수 있다
    시퀀스 사용하기
    - map과 filter등은 매번 컬렉션을 생성함
    - 시퀀스를 사용하면 하나의 컬렉션을 사용함
    - 원소가 많을 경우 매번 재배열을 하므로서 비용이 커진다
    시퀀스의 특징
    - 시퀀스는 하나 하나 넘기면서 넘어간다
    - 예로 1을 계산하고 find 검사하고 다음 2를 계산하고 find 검사하고 이런식
    - 시퀀스가 아닌 것은 map 검사하고 filter 검사하고 한단계 한단계씩 함
    - 이로 인해 성능이 변할 수 있음
    - 시퀀스는 자바의 스트림과 동일함 -> 안드로이드를 위해 만들어짐 -> 스트림은 병렬 스트림이 있어 더 좋음
    시퀀스 만들기
    - 컬렉션의 시퀀스만이 아닌 직접 generateSequence를 통해 직접 생성 가능
    람다를 매개변수로
    - 람다를 매개변수로 사용할 경우 해당 프로그램 내에서는 해당 람다가 하나만 생선되고 재활용된다
    - 단 변수를 포획하면 매번 생성된다
    with 수신 객체 람다
    - with 함수는 객체의 이름을 반복하지 않고 객체에 대해 다양한 연산을 수행할 수 있다. 결과는 실행 결과가 나간다
    - with문은 파라미터가 2개인 함수. 두번째는 람다라 괄호 밖으로 뺄 수 있다
    apply 함수
    - with과 동일하지만 수신객체를 반환한다
    - apply는 객체의 인스턴스를 만들면서 즉시 프로퍼티 중 일부를 초기화 해야하는 경우 유용함. builder와 비슷함
    - buildString 도 함수, 매개변수는 수신 객체 지정 람다
    as? 연산자 사용
    - 타입 캐스팅 시 해당 타입이 아닐 경우 엘빈스 연산자를 통해 값 반환

    'TIL' 카테고리의 다른 글

    2022.05.05 기록장  (0) 2022.05.05
    2022.05.03 기록장  (0) 2022.05.03
    2022.05.01 기록장  (0) 2022.05.01
    2022.04.30 기록장  (0) 2022.04.29
    2021.02.24~ 03.13기록장  (0) 2022.02.27

    댓글

Designed by Tistory.