Nest.JS | 모나드 -> 아마도 -> 만들기
내부 값을 가져와 적절한 Monad 인스턴스로 래핑하는 팩토리 메서드입니다. 이 make메서드는 종종 모나드 인스턴스를 생성하기 위한 생성자의 대안으로 사용됩니다. 일반적으로 더 구성 가능한 방식으로 모나드를 만드는 데 사용되며, 모나드 인스턴스에 더 많은 논리나 추가 동작을 추가하는 데 사용할 수 있을 뿐만 아니라 클라이언트 코드가 잘못된 내부 값을 가진 모나드 인스턴스를 만드는 것을 방지하는 데 사용할 수 있습니다.
make다음은 JavaScript에서 Maybe 모나드를 생성하는 메서드 의 예입니다 .
class Maybe {
static make(value) {
if (value === null || value === undefined) {
return new Nothing();
} else {
return new Just(value);
}
}
// ...
}
const maybeNumber = Maybe.make(2); // Just(2)
const nothing = Maybe.make(null); // Nothing
Nest.js에서 make메서드는 Monad의 새 인스턴스를 만드는 데 사용할 수 있는 도우미 함수입니다. 이 make메서드는 값을 받아 모나드의 새 인스턴스를 반환합니다.
make다음은 메서드를 사용하여 Nest.js에서 Maybe Monad의 새 인스턴스를 만드는 방법 의 예입니다 .
import { Injectable } from '@nestjs/common';
import { Maybe, make } from 'fp-ts/lib/Maybe';
@Injectable()
export class MyService {
public findUserById(id: number): Maybe<User> {
const user = findUserInDB(id);
return make(user);
}
}
make(user)null이 아니거나 정의되지 않은 some(user)경우 반환하고 , 그렇지 않으면 을 반환합니다 .usernone
또한 이 .map()함수를 사용하여 래핑된 값이 있는 경우 변환하고 함수를 .chain()사용하여 여러 계산을 연결할 수 있습니다.
이 예제는 기본 예제이며 함수형 프로그래밍에서 모나드의 모든 기능을 보여주지 않는다는 점에 유의해야 합니다. 모나드는 오류 처리, 여러 계산 연결 등과 같은 다양한 경우를 처리하는 데 사용할 수 있습니다. 모나드를 적용하기 전에 문제와 사용 사례를 이해하는 것이 가장 좋습니다.
부품 목록:

![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































