допустим
let b = 5
let c = 6
if (msg.payload == "up") { let work = +}
let a = b work c
Как строку "+", "-"...
ок попробую, но вроде в ошибку вываливался код
А зачем его хранить в переменной?
чтобы не писать
b work c конечно ошибка будет, свич/кейс надо
https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0_XY_(%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0_%D0%BC%D0%BE%D0%BB%D0%BE%D1%82%D0%BA%D0%B0)
class Operations { static add(a,b) { return a+b; } ...и так далее } const OPERATION_MAPPER = { 'up': (a,b) => Operations.add, 'down': (a,b) => Operations.diff, 'left': (a,b) => Operations.multiple, 'right': (a,b) => Operations.divide, } const DEFAULT OPERATION = Operations.add; ..... let b = 5; let c = 6; let operation = OPERATION_MAPPER[msg.payload) ?? DEFAULT_OPERATION; let a = operation(b,c);
Е-мае... И все это ради того, чтобы блин управлять действиями в коде
Ты смотри не на объем а на сложность и насколько легко его расширять(дополнять) Маленький код !== лучший код Как и большой код !== лучший Если тебе понадобится потом еще какая-то операция, условно в степень вознести или еще что-то Все что тебе надо будет, это добавить единственную строчку в OPERATION_MAPPER не трогая вообще логику основную и ничего не меняя в коде, лишь добавляя по строчке (по функции) В месте где операции применяются тебе вообще не надо вникать и читать что там за оперейшн маппер, и как там все работает. Ты читаешь только логику которая тебе нужна. Берется два числа, берется операция по пейлоаду и выполняется. Каким макаром та операция берётся, что за операция это дело второе, если тебе надо детали, ты будешь знать куда лезть их смотреть и меньше тратить времени на то, что-бы разобраться потом в коде через долгое время
Да, пришло понимание - большое спасибо. Я вот уже который раз смотрю в сторону освоения классов, просто пока не вижу как их практически использовать при обработке данных ( hex, десятичные, двоичные, строки.
Обсуждают сегодня