Size: a a a

2021 February 18

ŹR

Źmićer Rubinštejn in pro.elixir
Там проблема тока в полиморфизме
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Код

```
%User{ name: name, id: id} = Users.get_user(id)
```

Если User - record легко разворачивается компилятором в


{:"Elixir.User", _, _, name, _, _, id, _, _} = Users.get_user(id)
источник

AN

Alexey Novoselov in pro.elixir
Źmićer Rubinštejn
Код

```
%User{ name: name, id: id} = Users.get_user(id)
```

Если User - record легко разворачивается компилятором в


{:"Elixir.User", _, _, name, _, _, id, _, _} = Users.get_user(id)
а такой:
name_field = :login
%{name_field => name} = %User{login: log}

?
источник

A ß in pro.elixir
ссзб
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А такой в рантайме разворачивается
источник

AN

Alexey Novoselov in pro.elixir
Źmićer Rubinštejn
А такой в рантайме разворачивается
что может сделать таплы медленее мап в итоге)
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Ну ты же матчишь структуру на мапу
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Так же можно и вручную матчить структуру на тупл, если хочешь разгон
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Если ты матчишь структуру на струтуру - он тоже будет в рантайме проверять всякое говно
источник

AN

Alexey Novoselov in pro.elixir
Źmićer Rubinštejn
Ну ты же матчишь структуру на мапу
так для вм структура и мапа это одно и то же, а вот тапла и мапа совершенно разные вещи
источник

AN

Alexey Novoselov in pro.elixir
хотя оптимизировать можно, да
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Ну так если бы структуры были сделаны на рекордах, то тупл и структура была одно и то же
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Просто код %{field: value} = в отличие от %User{field: value} = это то же самое что если бы на рекордах ты писал {_, _, value} = вместо `#user{field=Value} = `
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Вот и получается, что проблема только в полиморфизме
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Типа “верни мне хз какое поле"
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Или “верни мне конкретное поле из хз какой структуры”
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Вопрос в том, много ли таких мест вообще есть
источник

AN

Alexey Novoselov in pro.elixir
в структурах имена полей - только атомы. Ecto.EmbeddedSchema поедет в магию с пределыванием мап поверх структур и т.д.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Зато так поехала етс
источник

ŹR

Źmićer Rubinštejn in pro.elixir
рекорды в ней сохраняются естественым образом
источник