Dogbert уже ответили на первый вопрос, я бы ответил второй.
** (FunctionClauseError) нет пункта функции согласования в ...
является одним из наиболее часто происходят ошибок в эликсире, а также любой другой языке поддержки шаблона в функциональных положениях. Рассмотрим этот надуманный пример:
defmodule M do
def test(param) when is_binary(param), do: "binary"
def test(param) when is_list(param), do: "list"
end
M.test("Hello, world")
#⇒ "binary"
M.test([1, 2, 3])
#⇒ "list"
Когда нет никакого пункта функции, которые могут быть сопоставлены с заданными параметрами, ошибка выше происходит:
M.test(42)
#⇒ ** (FunctionClauseError) no function clause matching in M.test/1
Тем не менее, библиотека, которую вы используете, ожидаемый другой тип (ы) одного или многих параметров. Давайте проверим: :wxFrame.new/4
ожидает:
Parent = wxWindow:wxWindow()
Id = integer()
Title = unicode:chardata()
Option = {pos, {X::integer(), Y::integer()}} |
{size, {W::integer(), H::integer()}} |
{style, integer()}
Третий параметр, как ожидается, будет unicode:chardata()
, который, в свою очередь Erlang charlist, что обозначается в эликсира одинарные кавычки. Отсюда комментарий @Dogbert: используйте одинарные кавычки вокруг 'Game of Life'
.
Попробуйте одинарные кавычки вокруг «Игры жизни» вместо двойного. – Dogbert
Wow не думал, что кто-то даже знал, что github repo был там, кроме меня. –
@OnorioCatenacci Google выполняет свою работу;) Спасибо за модуль. – raacer