Size: a a a

2018 November 09

ŹR

Źmićer Rubinštejn in pro.elixir
Ну вернее один раз давно захотелось)
источник

Е

Евгений in pro.elixir
ну а если надо проверить есть ли ключ в мапе и что-то сделать в зависимости от его наличия?
case map do
 {^key => value} -> ...
 _ -> ...
end
по моему ничем не хуже
case Map.get(map, key) do
 nil -> ...
 value -> ...
end
источник

Е

Евгений in pro.elixir
может кому-то второй вариант понятнее, я хз
источник

Е

Евгений in pro.elixir
мне все равно
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Евгений
ну а если надо проверить есть ли ключ в мапе и что-то сделать в зависимости от его наличия?
case map do
 {^key => value} -> ...
 _ -> ...
end
по моему ничем не хуже
case Map.get(map, key) do
 nil -> ...
 value -> ...
end
Даже лучше, matching - в конечном итоге будет быстрее работать, чем Map.get, в особенности если нужно будет ещё и другие ключи сразу доставать оттуда.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Евгений
ну а если надо проверить есть ли ключ в мапе и что-то сделать в зависимости от его наличия?
case map do
 {^key => value} -> ...
 _ -> ...
end
по моему ничем не хуже
case Map.get(map, key) do
 nil -> ...
 value -> ...
end
Представь, что на следующем спринте тебе надо будет проверить 2 ключа в мапе. Тогда тебе придётся написать 4 кейса.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Ну и обычно ты всё-таки знаешь, что за ключ
источник

Е

Евгений in pro.elixir
Dmitry Russ (Aleksandrov)
Даже лучше, matching - в конечном итоге будет быстрее работать, чем Map.get, в особенности если нужно будет ещё и другие ключи сразу доставать оттуда.
Это выше уже объявили крохоборством :))
источник

SG

Shumilkin Gena in pro.elixir
Евгений
может кому-то второй вариант понятнее, я хз
вот я из таких
источник

Е

Евгений in pro.elixir
первый вариянт всяко более канонично
источник

SG

Shumilkin Gena in pro.elixir
я всегда за вариант кода, который читаешь - буквально переводишь на русский дословно - получается то, что тебе было нужно
источник

Е

Евгений in pro.elixir
Źmićer Rubinštejn
Представь, что на следующем спринте тебе надо будет проверить 2 ключа в мапе. Тогда тебе придётся написать 4 кейса.
Не совсем понял, ну да ладно, один фиг Map.get вряд ли тут даси преимущество
источник

Е

Евгений in pro.elixir
Shumilkin Gena
я всегда за вариант кода, который читаешь - буквально переводишь на русский дословно - получается то, что тебе было нужно
ну тогда паттерн-матчинг вообще надо выкинуть, он ну никак не читается по-русски дословно :)
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Я предпочитаю когда в case вызов функции
источник

Е

Евгений in pro.elixir
Źmićer Rubinštejn
Ну и обычно ты всё-таки знаешь, что за ключ
Что ты под этим подразумеваешь? Знаю, грубо говоря, "тип" этого ключа, или его значение?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Евгений
Что ты под этим подразумеваешь? Знаю, грубо говоря, "тип" этого ключа, или его значение?
Знаешь тип
источник

SG

Shumilkin Gena in pro.elixir
Евгений
ну тогда паттерн-матчинг вообще надо выкинуть, он ну никак не читается по-русски дословно :)
почему, “объект x представляет из себя нечто описываемое шаблном y”
источник

Е

Евгений in pro.elixir
Shumilkin Gena
почему, “объект x представляет из себя нечто описываемое шаблном y”
ну тогда с чтением первого варианта никаких проблем не должно возникать
источник

DS

Dmitry Shpagin in pro.elixir
Źmićer Rubinštejn
Знаешь тип
Скорее название ключа?
источник

Е

Евгений in pro.elixir
а бывает так, что ты заранее не знаешь тип ключа? :) Ну это разве что абстрактный Map.get
источник