списки: ключевые проблемы - PullRequest
1 голос
/ 16 июня 2010

Я не могу на всю жизнь получить списки: keyfind работает так, как я ожидаю в Erlang.

У меня есть следующий тест eunit:

should_find_key_test() ->
    NewList = lists:keystore("key", 1, [], {"key", "value"}),
    Value = case lists:keyfind("key", 1, NewList) of
        false ->
            notfound;
        {_key, _value} ->
            _value
    end,
    ?debugVal(Value).

Всякий раз, когда я запускаю этот тест, яполучить следующее сообщение об ошибке:

indextests: should_find_key_test (модуль 'indextests') ... fail :: error: undef в списках функций: keyfind / 3 называется keyfind ("ключ"), 1, [{"key", "value"}]) при вызове indextests: should_find_key_test / 0

Кто-нибудь может увидеть, что я делаю неправильно?

Это говорит, что списки:keyfind больше не существует?

1 Ответ

3 голосов
/ 16 июня 2010

списки: keyfind / 3 был представлен в OTP / R13A.Я подозреваю, что вы используете более старую версию. До R13A вы использовали списки: serachkey / 3.Найден тот же кортеж, но возвращенные данные имеют немного другую структуру.

should_find_key_test() ->
    NewList = lists:keystore("key", 1, [], {"key", "value"}),
    Value = case lists:keysearch("key", 1, NewList) of
        false ->
            notfound;
        {value {_Key, _Value}} ->
            _Value
    end,
    ?debugVal(Value).

В примечаниях к выпуску показано добавление ключевого слова / 3 BIF в STDLIB версии 1.6.Проверьте версию STDLIB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...