Основным преимуществом struct является не производительность, а читаемость и корректность кода. Рассмотрим что-то вроде %{id: 123}
- мы не знаем, что представляет эта карта. Со структурами мы можем иметь %Person{id: 123}
и %Company{id: 123}
, и это будут разные вещи. Кроме того, можно легко выразить, какой из них ожидается при сопоставлении с образцом, как упомянуто GavinBrelstaff. Другим примером функции в структуре, нацеленной на корректность, является @enforce_keys
- установив ее в своей структуре, вы убедитесь, что на любом нормально созданном экземпляре будут присутствовать заданные ключи.