이론

지연된 함수

월러비 2024. 4. 17. 22:05

지연된 함수 란?

  • 지연된 실행이란 LINQ의 특징 중 하나로 질의를 구축한 다음에 목록에 집어넣은 요소가 포함되어있는 것처럼 모든 표준 질의 연산자는 이러한 실행 지연 기능을 제공한다.
bool bCheck = false;
IEnumerable<Patent> patents8 = Datas.Patents.Where
(
  patent =>
  {
      if(bCheck = patent.Title.StartsWith("B")) //우측의 결과를 좌측에 넣고 조건이 맞는지 확인한다.
      {
          print(patent.Title);
      }

      return bCheck;
  }
); //람다 문 / out 키워드 사용은 불가능하다. / return 필수다. / 람다식과 다르게 지역변수를 가져다 쓸 수 있다.
print("End patents");
print(patents8);
  • print(patent.Title);가 먼저 나오지 않고 print("End patents");가 먼저 나오는 것처럼 가져다 쓰는 시점에서 실행되는 순서다.
  • 먼저 나오게하려면 print(patents8);을 먼저 쓰고 print("End patents");를 써야한다.

지연된 함수 특징

  • 지연 실행을 사용하여 쿼리의 실행 시점을 최적화한다.
    • 복잡한 쿼리나 대규모 데이터에 대한 쿼리는 성능에 영향을 줄 수 있으므로, 성능을 고려하여 쿼리를 작성해야 한다.
  • 모든 표준 질의 연산자가 실행 지연 기능을 제공하지만 ‘예외’가 있다.
    • 하나의 요소나 스칼라값을 돌려주는 집계 연산자(First 나 Count 등)
    • 형식 변환 연산자 들 : ToArray, ToList, ToDictionary, ToLookup
    • 이런 연산자들이 포함된 질의는 구축 즉시 실행되기 때문에 연산자의 결과 형식에는 실행 지연 기능을 제공하는 메커니즘이 없다.

'이론' 카테고리의 다른 글

CPU - PC, IR  (1) 2024.04.20
3 Way Handshake  (0) 2024.04.17
덕 타이핑  (0) 2024.04.15
CPU ALU  (0) 2024.04.13
캐시 메모리  (0) 2024.04.13