F # Тип аннотации выпуска - PullRequest
1 голос
/ 06 мая 2019

Я новичок в разработке F #. Я получил ошибку при попытке скомпилировать пример исходного кода. У меня есть следующий код

let tryParseWith tryParseFunc = tryParseFunc >> function
         | true, v    -> Some v
         | false, _   -> None

let tryParseInt32    = tryParseWith System.Int32.TryParse
let tryParseInt64    = tryParseWith System.Int64.TryParse

Но я получил такую ​​ошибку

A unique overload for method 'TryParse' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates: Int64.TryParse(s: ReadOnlySpan<char>, result: byref<int64>) : bool, Int64.TryParse(s: string, result: byref<int64>)

1 Ответ

2 голосов
/ 06 мая 2019

System.Int32(64).TryParse - перегруженный метод. Таким образом, в вашем коде вы должны явно указать версию метода, который вы хотите использовать.

Я думаю, что вы хотите разобрать строку, поэтому код должен быть:

let tryParseInt32 : string -> int option    = tryParseWith System.Int32.TryParse
let tryParseInt64 : string -> int64 option  = tryParseWith System.Int64.TryParse
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...