В Эрланге, когда я использую; или, или?
Я пытался изучить Erlang и столкнулся с некоторыми проблемами с окончанием строк в функциях и операторах case.
а именно, когда я использую точку с запятой, запятую или точку внутри моих функций или операторов case?
Я получил материал для работы, но я действительно не понимаю, почему и искал немного больше информации.
5 ответов
запятая в конце строки обычного кода.
Точка с запятой в конце оператора case case или оператора if и т. д.
Последний случай или если в заявлении ничего нет в конце.
Точка в конце функции.
пример (извините за имена случайных величин, очевидно, это ничего не делает, но иллюстрирует точку):
case Something of
ok ->
R = 1, %% comma, end of a line inside a case
T = 2; %% semi colon, end of a case, but not the end of the last
error ->
P = 1, %% comma, end of a line inside a case
M = 2 %% nothing, end of the last case
end. %% period, assuming this is the end of the function, comma if not the end of the function
Я люблю читать с запятой или запятая, как и точка в конце. Так что
foo(X) when X > 0; X < 7 ->
Y = X * 2,
case Y of
12 -> bar;
_ -> ook
end;
foo(0) -> zero.
читается как
foo(X) when X > 0 *OR* X < 7 ->
Y = X * 2 *AND*
case Y of
12 -> bar *OR*
_ -> ok
end *OR*
foo(0) -> zero *END*
Это должно прояснить, почему нет; после последнего предложения случая.
период (.)
в модулях период используется для завершения атрибутов модуля и объявлений функций (a.к. а. "формы"). Вы можете запомнить это, потому что формы не являются выражениями (из них не возвращается значение), и поэтому точка представляет собой конец оператора.
имейте в виду, что определения функций с разными аритами считаются отдельными утверждениями, поэтому каждый из них будет завершен периодом.
например, функция определения hello/0
и hello/1:
hello() -> hello_world.
hello(Greeting) -> Greeting.
(обратите внимание, что в оболочке erlang период используется для завершения и оценки выражений, но это аномалия.)
точка с запятой (;)
точка с запятой действует как разделитель предложений как для предложений функций, так и для ветвей выражения.
Пример 1, п. функции:
factorial(0) -> 1;
factorial(N) -> N * fac(N-1).
Пример 2, ветви выражений:
if X < 0 -> negative;
X > 0 -> positive;
X == 0 -> zero
end
запятая (,)
запятая-это разделитель выражений. Если запятая следует за выражением, это означает, что после него в предложении есть другое выражение.
hello(Greeting, Name) ->
FullGreeting = Greeting ++ ", " ++ Name,
FullGreeting.
вы можете думать об этом как английская пунктуация. Запятые используются для разделения вещей в серии, точки с запятой используются для разделения двух очень тесно связанных независимых предложений[1] (например, различные случаи оператора case, предложения функций с тем же именем и Ариты, которые соответствуют различным шаблонам), а точки используются для завершения предложения (полная мысль).
- или чтобы доказать, что ты учился в колледже. "Не используйте точки с запятой. Они трансвеститы гермафродиты абсолютно ничего. Они только показывают, что ты учился в колледже.- ...Курт Воннегут!--4-->
запятая разделяет выражения, аргументы или элементы списка/кортежа или двоичного файла. Он перегружен работой.