A do
@a 1
end
как грамотно сделать чтобы другие модули могли использовать их ? объявить функциями ? а еще что нить ? макросы ?
Если ты хочешь такое делать, то ошибка где-то выше
хорошо а как правильно ? у меня общая логика которая вынесена отдельно и от этого модуля 2 модуля наследуются ... соотвественно там константы эти используются .. не буду же я их магическими делать в виде значений
Если константа задается программистом, то Application.compile_env
Почему, нормальная тема, объявить значения внутри модуля и везде переиспользовать
и что мне теперь в этом глобальном пространстве всё юзать ? да нах надо
Иначе ты сломаешь рекомпиляцию
чего сломаю ?
Если тебе нужны константы, которые получаются вызовом функции из модуля, то зачем тебе вообще аттрибуты модуля?
атрибуты не цель, цель сделать красиво. как то пихать константы в функции —- ну понятно что в эликсирах\эрлангах не завезли константы .. но может есть способ лучше ?
Ну вот у тебя либо будет функция, которая возвращает константу, либо у тебя будет макрос Если функция, то ты можешь словить дедлок в компиляции Если макрос, то у тебя не будет перекомпилироваться модуль, там где ты использовал эту константу (при изменении аттрибута в оригинальном модуле)
Там не констант, вообще, и нет, если не считать хаков с процессами. Я не понял, что ты имеешь в виду.
в эрланге я пишу #define(MY_CONSTANT,1). и потом подключаю этот файлик где надо .. и теперь использую ?MY_CONSTANT.
Так, но тут ведь ты его дефайнишь ручками А зачем ты в эликсире это через аттрибут хочешь сделать?
А как у тебя дедлок получится? Там же B и C использует A, в котором константы объявлены, если я правильно понял идею.
не хочу я через атрибут, я хочу не использовать магические значения.
Ну а потом A использует константу из B или C
Что значит "магические значения"? Ты вообще о чём?
бред какой-то, такого в условии не было
Но ты не можешь гарантировать что такого не будет потом
Такого в изначальной постановке не было, вроде. Типа есть общий, а остальные используют.
Просто у тебя будут функции за константы. И никаких магических чисел в логике нет.
согласить плохой тон писать просто 1. или 2 .. или 3 .. ? что это значит ? а если я буду писать @choice1, @choice2, @choice3 — то это лучше
Ну так а что тебе мешает сделать
А вот этот пример выглядит так, будто тебе лучше подошли просто атомы.
Да подошли бы. Но мне сверху спустили такой интерфейс
Обсуждают сегодня