Snusmumriken
Alxius
Опять у вас новый админ пишет
Alxius
https://sun9-15.userapi.com/c10104/u15551257/92783533/x_51376473.jpg. Извиняюсь это с моего бывшего сервера. Очень в тему
Egor
Использую penlight, есть таблица local category = { ['Main'] = { 'dynamic core','anti-gravity generator','anti-gravity pulsor' }, ['Fuel Tanks'] = {'atmospheric fuel-tank', 'space fuel-tank'}, ['Engines'] = {'space engine', 'atmospheric engine'} } Делаю так a=tablex.search(category, 'space fuel-tank') И получаю типа такого: Fuel Tanks.2 - что с ним делать? как мне получить например по нему ключ? (Fuel Tanks) ?
mva
а как скрестить ужа с ежом - домашне задание
Egor
z = category['Fuel Tanks'][2]
это я знаю =) просто результат какой-то этот пенлайт возвращает
Alxius
math.ceil ещё бы добавить чтобы без точки
Egor
Скажите, если я создал таблицу: a = {1,2,3,4} То порядок всегда будет таким? а то у меня почему то перемешиваются.
mva
контекст перемешивания в студию
mva
(а так - нет, в порядок не гарантируется, если не знать как его обеспечить)
Egor
контекст перемешивания в студию
из этого массива через for i in pairs(a) do ... end генерирую таблицу и каждый раз столбец разный -_-
mva
из этого массива через for i in pairs(a) do ... end генерирую таблицу и каждый раз столбец разный -_-
а почему ты создал индексированную таблицу, а обращаешься к ней через словарный pairs, а не ipairs? :)
mva
впрочем
Snusmumriken
This is almost random number. Random strings makes with string.char of your char bytes.
Egor
на самом деле код примерно выглядит так: b = {} a = {a={1,2},b={3,4},c={5,6}} for i in pairs(a) table.insert(b,a[i]) -- создаю индексированный массив end --и уже тут работаю с массивов, генерирую таблицу
mva
д
Snusmumriken
Чтобы сохранять порядок в хеш-табличке — можно изгаляться с метатаблицам.
mva
а... проще переделать )
просто нужно понять что словарные таблицы ({a=1, b=2}) не то же самое, что массивы ({1,2,3,"z",5,8})
mva
так что, либо порядок, либо доступ по ключу
Egor
просто нужно понять что словарные таблицы ({a=1, b=2}) не то же самое, что массивы ({1,2,3,"z",5,8})
да просто стоит задача такая. я получаю откуда-то итемы, и там по одному полю сортирую, т.е. в категорию а, б. итд надо засунуть. и поэтому решил, что мне проще будет: a[cat] = {name=name, text=text} Вот и думаю, может сделать доп. поле и по нему сортировать а потом перед отдачей рендеру удалить поля эти...
Tom
просто нужно понять что словарные таблицы ({a=1, b=2}) не то же самое, что массивы ({1,2,3,"z",5,8})
Вот тут меня в луа смущает однообразный синтаксис определения разных структур. В бидоне пологичнее будет [список] и {словарь} В жс так же
mva
зато в бидоне один объект не может быть и словарём и списком
mva
а в Lua может :)
Tom
а в Lua может :)
На самом деле за 7 лет ни разу такого не требовалось
fgntfg
Я не понял в чем фишка некоторых типов данных в питон
Snusmumriken
Вот тут меня в луа смущает однообразный синтаксис определения разных структур. В бидоне пологичнее будет [список] и {словарь} В жс так же
А мне как раз зашибись. Хочешь расширить список какой-нибудь фигнёй — добавляешь строковые ключи и радуешься. Методы, доп-свойства как у структуры и т.п.
Snusmumriken
Чем бидон остро НЕ нравится — у хешей нету нормального доступа по точке, приходится костылить. Нельзя просто взять и объявить хеш и начать его заполнять всякой фигнёй, типа: myhash = [] def myhash.foo(a, b): return a + b def myhash.bar( ... ): Приходится городить класс-объекты, а потом их через задницу расширять, при необходимости. Я прост попробовал сделать ловку из pygame, и упоролся с расширениями типа: function love.update(dt) ... end При добавлении метода в существующий объект, нужно делать однострочную лямбду (( То есть, питон как бы гибок, но недостаточно.
Snusmumriken
Я порождал монстров.
Alxius
я тут задумался, а ничего что я секретные комбинации вешаю на комбинации клавиш - скажем нажатие одновременно вверх вниз влево - вызывает рождение монстров
Alxius
тест спавнов
Alxius
игрок по идее все 4 кнопки никогда не жмёт
Snusmumriken
Да : )
Snusmumriken
И не только функцию, ещё другой словарь, заполненный функциями и всякой фигнёй.
Snusmumriken
И добавлять/вызывать эти функции-словари через точечку, ибо удобно.
Tom
И не только функцию, ещё другой словарь, заполненный функциями и всякой фигнёй.
Не вижу проблем. Вернусь к компу, попробую дать пример
Snusmumriken
Я таки не справился с нормальной реализацией такого, поэтому городил классы, и добавлял объектам методы после инициализации через лямбды.
fgntfg
Например?
Триплет
Snusmumriken
Ну это не тип, это обычный массив из трёх элементов. Как пара, только триплет. Грубо говоря, массив с тремя элементами можно обозвать триплетом, так же как массив с двумя — как бы парой. Удобно для zip-ов и прочей функциональщины.
Tom
Я таки не справился с нормальной реализацией такого, поэтому городил классы, и добавлял объектам методы после инициализации через лямбды.
Ааааа. Так ты вона чего хотел! Так оно так работает только в тех яп, где ооп прототипный на основе хэштаблиц - в луа и жс. В яп, где ооп реализован через классы, ты такое штатными средствами адекватно не сделаешь. В любом случае придется через лямбды городить
Snusmumriken
Не совсем. Ну, точнее 50/50. В С++ я вполне себе беру класс и расширяю его где хочу, хоть в другом файле.
Snusmumriken
Ну допустим я делаю биндинг steamworks. Там — функций дофига. Точнее, больше 400 штук. И пара сотен колбеков. Поэтому в инициализаторе класса я пилю все заготовки для колбеков (там именно нужно ООП, макросы STEAM_CALLBACK завязаны на это, особенность стима), а в файлах посвящённых разным категориям уже делаю реализацию колбеков.
Snusmumriken
Помещать это всё в один файл немножко неудобно, он разрастается на ~5-10к строк. Можно было бы сделать по классу-менеджеру для каждой категории, но это извращение и оверхед, плюс инициализировать каждый — задолбаюсь. А тут такой взял, сделал одно описание колбеков класса, а реализацию — в файлах по категориям.
Snusmumriken
Это плюсы.
Tom
Это плюсы.
А я про шарпы, где подобное просто сплошь и рядом. Аж в глазах рябит
Snusmumriken
А что там? Пардон, я просто далёк от "настоящего" ооп, со всякими интерфейсами/абстрактной фигнёй/шаблонами/разграничением прав и прочей бюрократией, пишу на С с классами (пусть и по банде четырёх) и рад.
Alxius
я постараюсь поделится своими скриптами для работы с Love проектом. что входит в комплект - из под линукс запускается: компиляция под Linux (Есть) под windows (есть) создание пакетов под дебиан (почти готово) под андроид (если выйдет сделаю) Сейчас только под универсальность скрипты затачиваю (чтобы номер билда сохранялся и название проги автоматически читалось
Snusmumriken
Не люблю бюрократию ((
Snusmumriken
Смотря как использовать, там тоже при желании можно писать как на C с классами (за исключением main)
Alxius
ух блин. вот это генерация DEB пакета для игр на Love2d вышла...
Snusmumriken
Я бы на это посмотрел
Нужно стараться, разумеется.
Snusmumriken
static public int foo(int x, int y) { int result = x + y; return result; }, например
Alxius
может кому пригодится.
Alxius
генерирует вот такие дебки " Reskue-Debian-amd64-b331.deb "
Alxius
имя я даже не сам придумал. скрипт сам его взял из имени игры, и номер билда тоже
Alxius
проверил правда только на Linux Mint
Tom
И не только функцию, ещё другой словарь, заполненный функциями и всякой фигнёй.
Ну добавить функцию можно например так d = {"x":2, "y":6} print(d) def linelen(d): return d["y"]-d["x"] d["len"]=linelen print(d["len"](d)) Но от лямбды это отличается ровным счетом никак. Ну и точечная нотация только для объектов, извиняй. В бидоне массивы объектами быть не могут.
#свободуНавальному
Вам известны такие использования lua? Типо как патченный xpath у телеграма
#свободуНавальному
You know something about use cases lua as script lang for no trust users? For example - u have web site and your users can write scripts for parsing other sites, but you should control calculations. It's sounds real or suck?
Snusmumriken
You know something about use cases lua as script lang for no trust users? For example - u have web site and your users can write scripts for parsing other sites, but you should control calculations. It's sounds real or suck?
Отписал в англоязычном чатике. Первый вопрос (про патченный xpath) — очень странный, есть пример?
#свободуНавальному
Как пользоваться этим чатом, если здесь ничего нельзя постить?
Snusmumriken
Прочитать закреплённое сообщение и узнать.
Snusmumriken
Хе : )
Snusmumriken
Я пока удалю твоё сообщение, но предпочёл бы чтобы ты подумал над своим поведением.
Pavel
в любой непонятной ситуации начинай обвинять в токсичности