Kotlin에서이 코드에서 "게으른"이란 무엇을 의미합니까?

일킨 맘마 자다

이 코드 라인은 무엇을합니까?

fun<T:x>a.b(y: Int)=lazy{u.v<T>(y)}

나는 Kotlin에서 '게으른'것이 무엇인지 또는 '게으른'것인지 알지 못합니다.

지배자

fun <T : x> ab (y : Int) = lazy {uv (y)}

이것을 분해합시다. 먼저 가독성을 위해 다시 포맷 해 보겠습니다. :)

fun <T: x> a.b(y: Int) = lazy { u.v<T>(y) }

자, 한 조각 씩 가자.

fun 새로운 메소드를 선언한다는 의미입니다.

<T:x>이것은 유형 제한 되는 유형 T에서 작동하는 일반 메소드임을 의미 합니다 .Tx

a.b이것은 type에 명명 확장 함수 임을 의미 b합니다 a.

(y: Int)정의 된 함수 bytype 이라는 단일 인수를 사용함 을 의미합니다 Int.

=is expression body syntax-짧은 코드 줄을 반환하는 축약 형입니다. 이것은 a.b평가 결과 값을 반환 한다는 것을 의미합니다.lazy { }

lazy이다 코 틀린 표준 라이브러리 함수 가 필요한 때까지 제공하는 기능의 평가를 지연하고 결과를 캐시합니다. 이 함수의 반환 값은 실제로 Lazy제공된 함수를 래핑 하는 유형 입니다.

{ u.v<T>(y) }Lazy객체의 값을 처음 획득 할 때 객체 가 실행할 함수 이며의 반환 값은 u.v<T>(y)lazy 객체의 value.

휴! 그게 무슨 뜻일까요? 예를 살펴 보겠습니다. 언제 호출되는지보기 위해 함수에 print 문을 추가한다고 가정합니다.

fun <T: x> a.b(y: Int) = lazy {
  println("Executing 'b'")
  u.v<T>(y)
}

이제 사용하려고하면 :

fun main() {
  val a = A<T>() // Assume some type T
  val lazyObject = a.b<T>(42) // Call the extension method that returns a `Lazy`
  
  // Get the value from the lazy object - prints "Executing 'b'",
  // executes `u.v<T>(y)`, caches the result, returns it - then print it
  println(lazyObject.value) 
 
  // Get the value from the lazy object again. This time, DOES NOT print
  // "Executing 'b'", DOES NOT execute `u.v<T>(y)`, and just returns the
  // result that was already computed and cached, then print it
  println(lazyObject.value)  
}

요약하면, 게시 한 코드 는 값을 쿼리 할 때 초기화 된 람다를 실행하고 나중에 사용할 수 있도록 그 결과를 캐시 하는 객체 를 반환 하는 확장 메서드를 만드는 Lazy것입니다.

도움이 되었기를 바랍니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이 코멘트에서 게으른 평가의 의미는 무엇입니까?

분류에서Dev

게으른 초기 상태-무엇이며 어디에 사용합니까?

분류에서Dev

DTO 및 최대 절전 모드에서 게으른 로딩 사이의 관계는 무엇인가

분류에서Dev

게으른 이미지에 대한 동적 데이터 -src를 변경하는 방법은 무엇입니까?

분류에서Dev

인수로 안드로이드에서 게으른 홀더 패턴을 디자인하는 방법은 무엇입니까?

분류에서Dev

이 코드에서! type은 무엇을 의미합니까?

분류에서Dev

TensorFlow에서 실험적이란 무엇을 의미합니까?

분류에서Dev

ATG에서 $ scope = global이란 무엇을 의미합니까 ..?

분류에서Dev

기준에 의해 설정된 게으른 아이들 얻기

분류에서Dev

스칼라에서 게으른 목록을 구현하는 게으른 발

분류에서Dev

메서드 외부에서 게으른 Queryset 호출이 아님

분류에서Dev

스칼라-게으른 반복기가 다음에 너무 많이 호출됩니까?

분류에서Dev

게으른 "anything"후에 정규식 게으른 캡처가 실패합니다.

분류에서Dev

Python3 :이 "%"는이 코드에서 무엇을 의미합니까?

분류에서Dev

게으른 관계를 사용하여 Laravel의 관련 테이블에 데이터를 저장하는 방법은 무엇입니까?

분류에서Dev

Angular2 문서에서 "부작용"이란 무엇을 의미합니까?

분류에서Dev

이 코드 조각은 Javascript에서 무엇을 의미합니까?

분류에서Dev

이 27017은 다음 코드에서 무엇을 의미합니까?

분류에서Dev

이 27017은 다음 코드에서 무엇을 의미합니까?

분류에서Dev

파이썬 소스 코드에서 ".main"은 무엇을 의미합니까?

분류에서Dev

이 HTML 코드에서 "styles.css? = 121"은 무엇을 의미합니까?

분류에서Dev

이 HTML 코드에서 "styles.css? = 121"은 무엇을 의미합니까?

분류에서Dev

이 루비 코드에서 1..self는 무엇을 의미합니까?

분류에서Dev

이 ARM NEON 코드에서 콜론은 무엇을 의미합니까?

분류에서Dev

이 Java 코드에서 "항목"은 무엇을 의미합니까?

분류에서Dev

Synaptic에서 "로컬 또는 구식"이란 무엇을 의미합니까?

분류에서Dev

@Lazy 주석과 <빈 /> 태그의 게으른 초기화 속성 사이의 차이점은 무엇입니까?

분류에서Dev

불변의 게으른 속성을 만드는 방법은 무엇입니까?

분류에서Dev

컨트롤러에서 가져온 항목으로 게으른 UISegmentedControl을 어떻게 초기화합니까?

Related 관련 기사

  1. 1

    이 코멘트에서 게으른 평가의 의미는 무엇입니까?

  2. 2

    게으른 초기 상태-무엇이며 어디에 사용합니까?

  3. 3

    DTO 및 최대 절전 모드에서 게으른 로딩 사이의 관계는 무엇인가

  4. 4

    게으른 이미지에 대한 동적 데이터 -src를 변경하는 방법은 무엇입니까?

  5. 5

    인수로 안드로이드에서 게으른 홀더 패턴을 디자인하는 방법은 무엇입니까?

  6. 6

    이 코드에서! type은 무엇을 의미합니까?

  7. 7

    TensorFlow에서 실험적이란 무엇을 의미합니까?

  8. 8

    ATG에서 $ scope = global이란 무엇을 의미합니까 ..?

  9. 9

    기준에 의해 설정된 게으른 아이들 얻기

  10. 10

    스칼라에서 게으른 목록을 구현하는 게으른 발

  11. 11

    메서드 외부에서 게으른 Queryset 호출이 아님

  12. 12

    스칼라-게으른 반복기가 다음에 너무 많이 호출됩니까?

  13. 13

    게으른 "anything"후에 정규식 게으른 캡처가 실패합니다.

  14. 14

    Python3 :이 "%"는이 코드에서 무엇을 의미합니까?

  15. 15

    게으른 관계를 사용하여 Laravel의 관련 테이블에 데이터를 저장하는 방법은 무엇입니까?

  16. 16

    Angular2 문서에서 "부작용"이란 무엇을 의미합니까?

  17. 17

    이 코드 조각은 Javascript에서 무엇을 의미합니까?

  18. 18

    이 27017은 다음 코드에서 무엇을 의미합니까?

  19. 19

    이 27017은 다음 코드에서 무엇을 의미합니까?

  20. 20

    파이썬 소스 코드에서 ".main"은 무엇을 의미합니까?

  21. 21

    이 HTML 코드에서 "styles.css? = 121"은 무엇을 의미합니까?

  22. 22

    이 HTML 코드에서 "styles.css? = 121"은 무엇을 의미합니까?

  23. 23

    이 루비 코드에서 1..self는 무엇을 의미합니까?

  24. 24

    이 ARM NEON 코드에서 콜론은 무엇을 의미합니까?

  25. 25

    이 Java 코드에서 "항목"은 무엇을 의미합니까?

  26. 26

    Synaptic에서 "로컬 또는 구식"이란 무엇을 의미합니까?

  27. 27

    @Lazy 주석과 <빈 /> 태그의 게으른 초기화 속성 사이의 차이점은 무엇입니까?

  28. 28

    불변의 게으른 속성을 만드는 방법은 무엇입니까?

  29. 29

    컨트롤러에서 가져온 항목으로 게으른 UISegmentedControl을 어떻게 초기화합니까?

뜨겁다태그

보관