На самом деле, даже когда вы используете аннотацию типа в параметрах функции, вы также используете аннотацию типа в шаблонах. Сопоставление с шаблоном F # работает даже с параметрами функции (let
привязка в целом).
Так что, как обычно, аннотация типа полезна, когда мы хотим немедленно применить тип вместо того, чтобы полагаться на вывод типа. У нас может быть много мест для размещения аннотации типов для достижения того же результата. Просто выберите место, наиболее удобное для ситуации. Рассмотрим пример ниже:
let detect2 (x : int option) =
match x with
| Some y -> ...
| None -> ...
Мы можем написать короче:
let detect2 x =
match x with
| Some (y : int)
| None -> ...
В этой ситуации нам следует предпочесть более позднюю.