Secure String.to_int и другие - PullRequest
3 голосов
/ 18 июля 2011

Я использую String.to_int и иногда получаю ошибки, например, когда строка не является представлением типа int. Я хотел бы поймать эти ошибки, или проверить параметр, прежде чем использовать функцию. Некоторые идеи?

Спасибо

1 Ответ

4 голосов
/ 18 июля 2011

Хм, можно утверждать, что было бы лучше, если бы String.to_int из stdlib вернул необязательное целое число (none указывает на ошибку).

Однако в Opa большинство разборов выполняется с использованием парсеров *. Например, чтобы получить вышеупомянутую функцию, вы можете написать:

string_to_int_opt(s : string) : option(int) =
  Parser.try_parse(Rule.integer, s)

или, если вы хотите быть менее подробным эквивалентом:

string_to_int_opt = Parser.try_parse(Rule.integer, _)

или, если это часть более сложного анализа, вы просто использовали бы там парсер Rule.integer.

(*) Полагаю, в этом разделе руководства могут использоваться некоторые расширения ...

...