패키지, 저장소 및 앱 카테고리 검색

GitHub 저장소wrike/memoize_dart

memoize_dart

wrike/memoize_dart open-source repository details.

memoize_dart 프로젝트 이미지
스타
27
포크
7
최근 푸시(UTC)
2021. 8. 22.
프로젝트 상태
활성

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

Memoize

memoize returns cached result of function call when inputs were not changed from previous invocation.

Warning

memoize_dart now supports dart 2.12.0 and null safety since 3.0.0 version.

For 2.0.0 we drop func as dependency. Because it archived and doesn't support dart2.

If you need dart-1.24.3 use 1.4.0 version

Examples

memo1, memo2, ... memo10 compare arguments with == operator:

import 'dart:math';
import 'package:memoize/memoize.dart';

void main() {
  var rect1 = new Rectangle<int>(0, 0, 10, 10);
  var rect2 = new Rectangle<int>(0, 0, 10, 10);

  var func = memo1((Rectangle<int> a) => a.width * a.height);

  print(func(rect1));
  print(func(rect2)); // cached result is returned
}

imemo1, imemo2, ... imemo10 compare arguments with identical function:

import 'dart:math';
import 'package:memoize/memoize.dart';

void main() {
  var rect1 = new Rectangle<int>(0, 0, 10, 10);
  var rect2 = new Rectangle<int>(0, 0, 10, 10);

  var func = imemo1((Rectangle<int> a) => a.width * a.height);

  print(func(rect1));
  print(func(rect1)); // cached - same object instance
  print(func(rect2)); // not cached - different object instance
}

memo0 caches result on first call and can be used as lazy cache:

import 'dart:math';
import 'package:memoize/memoize.dart';

void main() {
  var func = memo0(() => new Rectangle<int>(0, 0, 10, 10));

  print(func());
  print(func()); // cached - same object instance
}

Contributors

Wrike GitHub avatar
GitHub 작성자

Wrike ↗

Welcome to the Wrike TechClub open source community. Let's make tech world better together! NB: members must have two-factor auth.

언어Dart

이 저장소가 배포한 패키지

사용 중인 의존성

의존성 목록 1 개

  • test개발 의존성^1.0.0

프로젝트에 맞는 저장소를 선택하려면?

사용 목적에 따라 검색하고 개발 활동을 비교한 뒤 원본 저장소에서 요구 사항을 확인하세요.

  1. 이름, 작성자 또는 설명으로 검색하고 기술 주제로 범위를 좁힙니다.
  2. 스타, 포크, 최근 푸시를 함께 비교하세요. 스타는 관심의 지표이며 품질을 보장하지 않습니다.
  3. 사용하기 전에 GitHub에서 README, 라이선스, Issues를 확인하세요.

출처 및 관리

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗