Как эффективно представлять флаги в Elixir?

100
12

У меня есть функция в Elixir, которая может завершиться в одном из состояний с необязательным флагом: ok, block, ok_spawned, blocked_spawned. (В этом случае флаг "_spawned" является флагом.) В будущем количество состояний и флагов может увеличиться.

Мой вопрос: какой лучший способ реализовать это? Поэтому я могу легко проверить флаги/общее состояние?

Мои идеи - это либо Карта, либо некоторые кортежи, где первый элемент является базовым, а второй - представлением флагов, но я не уверен, что лучше.

Любые идеи приветствуются.

спросил(а) 2021-01-25T14:17:23+03:00 4 месяца, 4 недели назад
1
Решение
89

Я просто использовал атомы и кортеж:

http://elixir-lang.org/getting_started/2.html#2.3-atoms

http://elixir-lang.org/getting_started/2.html#2.7-tuples

Что-то вроде этого может быть:

{:ok, nil}
{:ok, :blocked}
{:ok, :spawned}
{:blocked, :spawned}

Но, может быть, я не понимаю ваш вопрос правильно?

ответил(а) 2021-01-25T14:17:23+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема