В корне вашего приложения вам нужно запустить его с помощью. Это позволяет вам использовать виджеты ScopedModelDescendent ниже в дереве.
ScopedModel<AppModel>(
model: AppModel(),
child: Resources())
Где бы вы ни отображали свои Ресурсы, убедитесь, что они обернуты, как указано выше, тогда вы сможете использовать эту модель ниже в своем дереве.
1> {ok, [X]} = io:fread("input : ", "~d").
input : 10
{ok,"\n"}
2> X.
10
3> {ok, [A,B]} = io:fread("input : ", "~d,~d").
input : 456,26
{ok,[456,26]}
Это все.
Существуют различные функции в OTP, чтобы помочь Вам преобразовать строку в целое число. Если Вы просто читаете строку от пользователя (до новой строки, например), Вы можете оценивание ее с функцией to_integer(String)
в string
модуль:
string:to_integer(String) -> {Int,Rest} | {error,Reason}
Существует также list_to_integer(String)
BIF (Встроенная функция, просто звоните без модуля), но это не является столь же прощающим как string:to_integer(String)
функция:
list_to_integer(String) -> int()
Вы получите a badarg
исключение, если строка не содержит целое число.
Erlang представляет строки как списки целых чисел, которые являются в определенном диапазоне. Поэтому вход будет числом, которое представляет символ "1", Вы могли вычесть смещение для получения фактического. Число, извините не имейте VM здесь для тестирования решения.
Если вы используете строку: to_integer / 1, убедитесь, что значением Rest является пустой список []. Функция извлекает целое число, если оно есть, из начала строки. Это не гарантирует, что полный ввод преобразуется в целое число.
string:to_integer(String) -> {Int,Rest} | {error,Reason}
Пример:
{Int, Rest} = string:to_integer("33t").
Int. % -> 33
Rest. % -> "t"
Зачем проверять? Если палец пользователя поскользнулся и нажал «t» вместо 5, то предполагалось ввести 335, а не 33.
Попробуйте напечатать число с помощью ~ w
вместо ~ p
:
1> io:format("~w~n", [[10]]).
[10]
ok
2> io:format("~p~n", [[10]]).
"\n"
ok
Спецификатор формата ~ p
пытается выяснить, может ли список быть строкой, но ~ w
никогда не догадывается; он всегда печатает списки в виде списков.