C #에서 웹 API 에 대한 클라이언트를 만드는 동안 null
두 가지 다른 것을 나타내는 값 과 관련된 문제가 발생 했습니다.
- 아무 것도 , 예를 들어 할
foo
수도 있고 없을 수도 있습니다.bar
- unknown : 기본적으로 API 응답에는 속성의 하위 집합 만 포함되므로 원하는 추가 속성을 지정해야합니다. 그래서 알 수없는 경우, 해당 건물이 API에서 요청하지 않았 음을 의미합니다.
검색 한 후 Maybe (또는 Option) 유형, 기능 언어에서 사용되는 방법 및 사용자가 값이 없을 가능성에 대해 생각하도록하여 널 역 참조 문제를 어떻게 해결하는지 알아 냈습니다. 그러나 내가 만난 모든 리소스는 null 을 Maybe로 바꾸는 것에 대해 이야기했습니다 . 나는 세 가지 가치가있는 논리에 대한 언급을 찾았 지만 그것을 완전히 이해하지 못하고 언급 된 대부분의 시간은 "나쁜 일"이라는 맥락에서 왔습니다.
나는 이제 null 과 Maybe 개념을 모두 알 수 있고 아무것도 나타내지 않는 것이 타당한 지 궁금합니다 . 이것이 내가 읽은 3 가치 논리입니까, 아니면 다른 이름이 있습니까? 아니면 어쩌면 어쩌면에 네스트를 중첩시키는 의도 된 방법입니까?
M M x
과 M x
같은 의미를 가져야한다.
M (M x)
와 M x
같은 의미론을 가져야 한다"는 것은 거짓입니다 . 가지고 M = List
예를 들면 : 목록리스트 목록과 같은 것이 아니다. 경우 M
모나드는, 거기 인 변화 에서 (즉 모나드 승산) M (M x)
에 M x
있는 이들 사이의 관계를 설명하고 있지만, "는 동일한 의미를"없다.
null
. 완전히 깨진 아이디어입니다.