Size: a a a

2018 December 04

DR

Dmitry Russ (Aleksandrov) in pro.elixir
defmodule Test do
 def test() do
   case {foo(), bar()} do
     {true, _} -> :ok
     _ -> false
   end  
 end

 defp foo(), do: true
 defp bar(), do: IO.inspect(:bar)
end


Ну и собственно проверка)

Test.test
:bar
:ok
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Dmitry Russ (Aleksandrov)
Если ты хочешь, чтобы в case-е bar() выполнился бы в любом случае, то его невыполнение - это баг в компиляторе.
А если не хочу, мне нужен cond?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Или мне надо подробить кейсы
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Źmićer Rubinštejn
А если не хочу, мне нужен cond?
cond, дробить case-ы, with.
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Но cond - вообще там, где действительно нужен - не заменим с тем же уровнем понятности и отсутствия boilerplate-а....
источник

Е

Евгений in pro.elixir
Dmitry Russ (Aleksandrov)
Пожалуйста и никаких return-ов в Elixir-е.
естественно, в эликсире же нет return, а, например, в плюсах нет cond.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Switch же
источник

Е

Евгений in pro.elixir
не поможет в данном случае, он убогий по сравнению с cond
источник

KA

Korolll And in pro.elixir
Ребят, а кто-нибудь тестил приложение на cowboy, как можно протестировать конкретно взятый обработчик сырыми данными?
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Евгений
не поможет в данном случае, он убогий по сравнению с cond
В golang (switch) и в Rust-е поможет.
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
C++ вряд ли можно назвать языком с хоть как-нибудь хорошим дизайном (учитывая современное понимание языкостроения). Языки тоже эволюционируют и вводят бест праксис.
источник

Е

Евгений in pro.elixir
Dmitry Russ (Aleksandrov)
В golang (switch) и в Rust-е поможет.
и будут там те же return?
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Евгений
и будут там те же return?
Нет
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
И будет там так же, как с cond в Elixir-е.
источник

Е

Евгений in pro.elixir
в голанг можно вернуть значение не делая return?
источник

Е

Евгений in pro.elixir
Dmitry Russ (Aleksandrov)
C++ вряд ли можно назвать языком с хоть как-нибудь хорошим дизайном (учитывая современное понимание языкостроения). Языки тоже эволюционируют и вводят бест праксис.
полностью согласен, говорю как бывший любитель плюсов.
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Евгений
в голанг можно вернуть значение не делая return?
Хм, не знаю, надо посмотреть - по крайней можно без вложенных if-ов, остальное надо проверить
источник

Е

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

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Евгений
один хрен в каждом кейсе надо делать return или присваивать значение переменной, тоже самое что и второй вариант получится, только чуть длиннее
switch {
case isDead?(): deadAmount()
case isSeparated?(): separatedAmount()
case isRetired?(): retiredAmount()
default: normalPayAmount()
}


Либо может надо amount = deadAmount()
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Но это проблема в дизайне языка, что с return-ом короче, вроде в Rust-е не нужно.
источник