Проблема в том, что let
само по себе не является выражением:
В F # все является выражением определенного типа.Но let
само по себе не является выражением, это связывание, и его следует продолжить с некоторым выражением, которое, по-видимому, использует значение, связанное с идентификатором result
.
, поскольку вы просто тестируете попытку/ поймать функциональность.Я предполагаю, что вы на самом деле не заинтересованы в создании каких-либо значений, поэтому я добавил выражение: ()
после let
.
try
let result = 100/0
()
with
ex -> printfn "%s" ex.Message
Выражение try/with
требует, чтобы обе стороны возвращали одно и то жетип значения, как if/then/else
.Поскольку на стороне with
1016 * возвращает unit
, я сделал так, чтобы сторона try
также возвращала значение unit
, равное ()
.Думайте об этом как эквивалент void
в C #.