АН
Size: a a a
АН
V
do
и end
- это аналоги {
и }
из других языковfunction blabla(a) {
print a;
}
def blabla(a) do
IO.puts a
end
АН
V
def blabla(a), do: IO.puts a
АН
PT
do .... end
и do: ...
взаимозаменяемы. В итоге компилятором в одинаковое AST собирается. В неокторых случаях однострочная нотация лучше читается. Напримерif a do
b
else
c
end
if a, do: a, else: c
V
def
- это вызов макросаblabla(a)
- первый аргументdo .. end
- это развёрнутый вариант короткой формыdef blabla(a), %{do: IO.inspect(a)}
или если полностьюdef (blabla, [a], %{do: IO.inspect(a)})
if something, then: a, else: b
это по сутиif something, %{then: a, else: b}
илиif (something, %{then: a, else: b})
PT
if(something, [then: a, else: b])
V
jj
АН
list = ["a","b","c"]
c=Enum.at(list,2)
for ff <-c do
IO.puts(ff)
end
A
АН
jj
АН
jj
АН
A
АН
list = ["a","b","c"]
c=Enum.at(list,2) IO.puts (x)
так код работает, или к примеру когда мы просто выводим list = ["a","b","c"] Enum.each(list, fn x ->IO.puts (x) end)
тоже работает list = ["a","b","c"]
c=Enum.at(list,2)
Enum.each(c, fn x ->IO.puts (x) end)
а так нет. Я даже создал пустой массив c=[]
Я выгляжу может глупо, но хочу понять что не так ?ДС