[c#] C # 기본 키워드의 F #에 해당하는 것은 무엇입니까?

default예를 들어 C # 키워드에 해당하는 것을 찾고 있습니다 .

public T GetNext()
{
    T temp = default(T);
            ...

감사



답변

블로그에서 ” 이 C # 코드는 F #에서 어떻게 생겼습니까? (1 부 : 표현식 및 문)

C #에는 지정된 형식의 0으로 초기화 된 값을 반환하는 “default”라는 연산자가 있습니다.

default(int)

유용성이 제한적입니다. 일반적으로 제네릭에서 default (T)를 사용할 수 있습니다. F #에는 라이브러리 함수와 유사한 구조가 있습니다.

Unchecked.defaultof<int>


답변

기술적으로 말하면 F # 함수 Unchecked.defaultof<'a>defaultC # 의 연산자 와 동일합니다 . 그러나 F # defaultof에서는 안전하지 않은 것으로 간주되며 실제로 필요할 때만 사용해야합니다 ( nullF #에서도 권장되지 않는를 사용 하는 것과 같이 ).

대부분의 상황 defaultof에서 option<'a>유형 을 사용하여 필요를 피할 수 있습니다 . 값을 아직 사용할 수 없다는 사실을 나타낼 수 있습니다.

그러나 여기에 아이디어를 보여주는 간단한 예가 있습니다. 다음 C # 코드 :

    T temp = default(T);
    // Code that may call: temp = foo()
    if (temp == default(T)) temp = bar(arg)
    return temp;

F #에서 다음과 같이 작성 될 수 있습니다 (명령형 기능 사용).

    let temp = ref None
    // Code that may call: temp := Some(foo())
    match !temp with
    | None -> bar(arg)
    | Some(temp) -> temp

물론 이것은 특정 시나리오에 따라 다르며 경우에 따라 defaultof수행 할 수있는 유일한 작업입니다. 그러나 defaultofF #에서 덜 자주 사용 된다는 점을 지적하고 싶었습니다 .


답변