선택적 / 어쩌면 유형이 동적 언어에 유용합니까?


14

Optional정적 형식 언어에서는 분명한 방식으로 유용하지만 동적 언어에서도 유용한 지 궁금합니다. 일반적으로 "이봐, 이것을 " Optional<String>으로 사용했다 "고 말하는 컴파일러는 없으므로 String런타임에 실수를 찾아야합니다. 나는 정적 타이핑 배경을 가지고 있으며 내 관점 Optional에서 동적 언어로 된 유형 의 이점을 볼 수 없습니다 .

답변:


13

그 약점은 동적 언어의 모든 유형과 실제로 다르지 않습니다 . 당신은 그것의 내용을 찾으려면 그것을 실행해야합니다. 이와 관련하여 옵션은 실제로 다르지 않습니다.

옵션은 값이 있거나 없을 수있는 정적 주석 이상의 것입니다. 그들과 관련된 작업도 있습니다. 옵션에 대한 매핑 된 작업 체인은 매우 유용한 기능 중 하나이므로 체인의 모든 단계 후에 실패를 확인하지 않아도됩니다.

값을 즉시 검색 한 경우에도 프로그래머가 Nothing처음으로 실행 및 실패 했는지 확인하도록 계속 자극합니다 . 옵션이 없으면 해당 prodding은 null처음 실행했을 때 포함 된 경우에만 발생 합니다. 많은 널 포인터 역 참조가 제품이 현장에 올 때까지 완고하게 기다렸습니다.


0

Objective-C와 대화 할 수 있습니다.

동적 유형 언어는 늦게 바인딩되므로 "선택적"(값이 아닌 값은으로 표시 nil)을 확인하는 것이 고유합니다. 런타임시 유형을 확인하면 nil암시 적으로 확인합니다 . 물론 이것은 체인 가능합니다. 이것은 또한 본질적으로 이루어집니다.

정적 유형 언어의 경우이 추가 개념은 컴파일시 유형 결정을 내려야하기 때문에 이점이됩니다. 동적 유형 언어는 결코 그렇지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.