Anonymous
Вот вообще без враппера:
Object.prototype[Symbol.iterator] = function* () {
for (const key of Object.keys(this)) {
yield [key, this[key]];
}
}
for (let [key, value] of { a: "A", b: "B"}) {
console.log(`${key}: ${value}`);
}
Но так делать не стоит
Анатолий
А ещё я хочу кортежи. А ещё out-переменные.
Анатолий
Ладно, подожду null-coalesce, не буду никого нервировать
Андрей
Анатолий
Я уже про жс
Андрей
Я тоже.
Deleted
Анатолий
Анатолий
Ок
Андрей
Особенно в js, где типов нет.
Deleted
out переменные не нужные когда есть деструктуризация
Андрей
Deleted
возвращаешь столько переменных сколько нужно
Андрей
Анатолий
Анатолий
А то я опять вспомню жквери, где простота, скорость и сахар реализуются за счёт надстройки над языком :)
Андрей
Но out переменные не работают с асинхронными методами, так как возникают проблемы.
Анатолий
Анатолий
Андрей
Anonymous
Anonymous
туплеты намного элегантнее
Андрей
Deleted
Не надо запихивать это в if ни то и не другое
Андрей
В остальных случаях надо возвращать структуры.
Deleted
Потому что читабельность такого выражение в if плохая
Андрей
Андрей
Пишу "по пачке в день" таких выражений.
Андрей
Deleted
Anonymous
Ну так не запихивай)
Анатолий
Смысл out в том, чтобы произвольно вернуть наружу новые объекты.
Мутировать аргументы может ref
Вернуть коллекцию разнотипных обхектов можно в tuple
Андрей
Ладно, out всё равно в js не появится никогда)
Deleted
if выражения должны читать как фраза
"если разбор успешный то"
Андрей
Анатолий
Функция, которая порождает новые сущности.
Потому что вернуть она может только одну, чем бы она ни была
А мутировать она может только существующую, а специально её создавать для последующей мутации - это извращение.
Гораздо чище самой функции пробросить новую сущность наружу
Deleted
Они так и читаются)
дословно должны так читаться
а не выражения которые это имеют ввиду
Anonymous
const { divres, modres } = Math.divmod(val)
и
let modres = 0;
const divres = Math.divmod(val, out modres);
Что лучше?
Андрей
Anonymous
Как видишь я тоже могу привести отвратный пример 😉
Deleted
Нет.
Стайлгайды по качественному коду
Анатолий
Deleted
Анатолий
А то смесь получается, тут мы возвращаем, а тут у нас out, не хватает только мутировать чего-нибудь через условный ref :)
Андрей
Anonymous
Вот что нужно js так это matching. И не такой как в пропозале сейчас
Анатолий
Анатолий
Там можно матчить ренжами
Андрей
А у тебя попа не слипнется?
Андрей
Может тебе в питон надо?
Анатолий
Да ладно, ифами обойдусь, впервой что ли
Anonymous
function test(str) {
switch (true) {
case /xyz/.test(str):
display("• Matched 'xyz' test");
break;
case /test/.test(str):
display("• Matched 'test' test");
break;
}
}
Андрей
Анатолий
http://www.picaxe.com/BASIC-Commands/Program-Flow-Control/select/
Анатолий
50 лет языку
Anonymous
Анатолий
Анатолий
клёво? )
Андрей
клёво? )
И этот человек мне говорил о лаконичности кода.
Anonymous
Андрей
Ну я тоже
Вообще можно сделать кеш на викмапах и радоваться жизни)
Aleksey
switch ( true ) {
красивее и уже работает
Анатолий
Андрей
Anonymous