이 질문에 대답하기 위해 프로그래머의 마음에 드는 모호한 비용이 몇 번의 추가 키 입력보다 훨씬 비싸다고 가정 해 봅시다.
그렇다면 왜 팀원이 기능 매개 변수에 주석을 달지 않고 벗어날 수 있습니까? 훨씬 더 복잡한 코드가 될 수있는 예제로 다음 코드를 사용하십시오.
let foo x y = x + y
이제 툴팁을 빠르게 살펴보면 F #에서 x와 y를 정수로 결정했음을 알 수 있습니다. 그것이 당신이 의도 한 것이라면, 모든 것이 잘됩니다. 하지만 난 그게 당신이 의도인지 모른다. 두 개의 문자열을 연결하기 위해이 코드를 만든 경우 어떻게해야합니까? 아니면 아마도 복식을 추가 할 생각이라면 어떨까요? 또는 모든 단일 기능 매개 변수 위로 마우스를 가져 가서 유형을 결정하지 않으려면 어떻게해야합니까?
이제 이것을 예로 들어 보겠습니다.
let foo x y = "result: " + x + y
F #은 이제 문자열을 연결하려고 한 것으로 가정하므로 x와 y는 문자열로 정의됩니다. 그러나 코드를 유지 관리하는 빈약 한 schmuck은 이것을보고 x와 y (ints)를 함께 추가 한 다음 UI 목적으로 문자열에 결과를 추가하려고했는지 궁금 할 것입니다.
분명히 그러한 간단한 예를 들어 보자. 그러나 명시 적 유형 주석 정책을 시행하지 않는 이유는 무엇입니까?
let foo (x:string) (y:string) = "result: " + x + y
모호하지 않은 데 어떤 해가 있습니까? 물론 프로그래머는 그들이하려고하는 일에 대해 잘못된 유형을 선택할 수 있지만 적어도 그들이 의도 한 것은 알고 있지만 그것이 단순한 감독이 아니 었습니다.
이것은 심각한 질문입니다 ... 나는 여전히 F #을 처음 접했고 회사의 흔적을 타 오르고 있습니다. 내가 채택한 표준은 미래의 모든 F # 코딩의 기초가 될 것이며, 앞으로도 계속해서 문화에 스며들 것입니다.
그렇다면 ... F #의 형식 유추에 특별한 점이 있습니까? 필요할 때만 주석을 달아 소중한 가치를 지니고 있습니까? 또는 전문가 F # 사용자는 사소한 응용 프로그램에 대해 매개 변수에 주석을 달는 습관을 듭니까?