Comments 9
Кстати с mongodb вторая версия ecto работает, правда пока это в виде форка: https://github.com/michalmuskala/mongodb_ecto/pull/91
+1
Я как ни открою пост про эликсир, так увижу новый синтаксис в языке.
что значат два бекслеша? Это уже не говоря о том, что тут какое-то изменение работы с функцией, которое понятно только тем, кто с этим уже работал.
def changeset(user, params \\ :empty) do
что значат два бекслеша? Это уже не говоря о том, что тут какое-то изменение работы с функцией, которое понятно только тем, кто с этим уже работал.
+1
параметр по умолчанию
+1
Это уже не говоря о том, что тут какое-то изменение работы с функцией, которое понятно только тем, кто с этим уже работал.
Что изменилось можно понять по сигнатуре прошлой версии, которая представлена в тексте повыше:
cast(source, :empty, required, optional)
То есть ранее 3-ий и 4-ый аргументы принимали required и optional поля соответственно, а теперь мы передаем все поля в 3-ий аргумент, а помечаем их required в validate_required.
С Ecto ранее не работал.
+1
Для справедливости замечу, что это совсем не новый синтаксис.
Синтаксис \\
для default arguments появился в 0.12.3(февраль 2014), а сами аргументы по умолчанию были уже в первом публичном релизе 0.5.0(май 2012).
+1
это каждый раз для меня открытие =)
Вот так фигак, и оказывается, что функция может иметь плавающее количество аргументов.
Вот так фигак, и оказывается, что функция может иметь плавающее количество аргументов.
+1
Это не совсем плавающее число аргументов, функция f(a, b, c \\ 0)
все равно остается f/3, это просто сахар.
Но при этом
defmodule A do
def test(a, b) do
a + b
end
def test(a, b, c \\ 0) do
a + b + c
end
end
warning: this clause cannot match because a previous clause at line 2 always matches
/home/kana/dev/check_arity.ex:6
+1
Sign up to leave a comment.
Брошюра об Ecto – интерфейсе для работы с базами данных на Elixir