Givi
engelbart
Обратной дороги, фактически нет
Givi
Да, пробовал много раз. Разные IDE, мучал себя. Но это невозможно.
S
S
сколько времени надо убить - чтобы более менее там обосноваться)
Alexander
а выйти из него вообще не реально )
Alexander
тому, кто случайно в него попадёт
engelbart
И это правда, кривая обучения крутовата
Oleg
Кто считает, сколько раз уже пошутили про выход из вима? :)
engelbart
И поэтому многие бегут , и потом придумывают страшилки что вот дескать идея то лучше
engelbart
Эта шутка никогда не умрёт
S
этот как с китайским японским не выучишь n ироглифов не выучишь язык - тут тоже - не выучишь команды - мучайся
Alexander
шутка, сказаная в тему, баяном не считается
Alexander
тема была про вход
engelbart
я например команд мало использую
engelbart
если вы про : команды
engelbart
я люблю их мапить на хоткеи
engelbart
а хоткеев да, очень много
engelbart
Но это дело десятое, это и идея сможет поди
engelbart
Важно не это, важно тчо один редактор в любом контексте
S
S
в сравнении с вим
engelbart
а, ну тогда печаль
Givi
Урезан функционал хоткеев? Это в разнорежимном-то редакторе? Ыыы
S
Givi
Незнаю почему, но похоливарив про vim, захотелось написать свой собственный ORM, again 😂😂😂
S
в виме их на порядок больше и возможность писать команды
engelbart
ну опять таки, хотьи ярый фанат вима не могу не отметить что вимскрипт - дерьмо
S
в иде можно добавлять хот кеи
engelbart
слава богу, полно добрых людей что эту боль уже прошли до меня
engelbart
Честно говоря коллега, я могу поверить во что угодно. Все равно сценарий что я вдруг запущу другой редактор кажется мне маловероятным
Givi
А ещё, мне очень нравится идея лид кея.
S
никто ине подбивает - на что-то слазить)) или куда-то залазить)) просто так разговоры
Givi
Каждый плагин по первой букве а дальше нужный биндинг.
Alexander
Alexander
Как бы мне правильно написать? Есть массив a=["name":"test", "email":"test2"] Мне надо подготовить sql, где будет exec( "INSERT INTO (?,?) VALUES (?,?)", key, key, a["name"], a["email"] )
Daniel
в чем вопрос-то?
Alexander
ключи где взять? И массив разной длинны
Alexander
готовый код есть?
Daniel
1. это не массив, а мапа
Daniel
2. что значит - где?
Anonymous
Кстати, да, мапа
Daniel
массив разной длины означает динамичемкую генерацию текста запроса
Alexander
да, вот мне этонадо
Kirill
Alexander
да, перелезаю с php на go
Daniel
никакой специальной либы для этого я не знаю
Kirill
Kirill
Но давай начнем с названий
Alexander
Поздравляю тебя, Шарик )
Anonymous
Пора уже реабилитационные чаты создавать, чур я главный)
Daniel
группы!
Kirill
Ассоциативный массив - самое неправильное название хешмапа
Kirill
Alexander
да, про мап я уже знаю
Kirill
Daniel
"здравствуйте, меня зовут Васлий. и я 15 лет программировал на ПХП" - "здравствуй, Василий"
Alexander
так, не отвлекаемся
Alexander
есть мап, произвольной длинны, надо собрать INSERT INTO (?,?...?) VALUES(?,?...?)
Anonymous
Ассоциативный массив - самое неправильное название хешмапа
как-то н лет назад был я на пхп собесе как испытуемый.
господа спрашивали меня про внутреннее устройство типов на пхп. я робко сказал “там все структуры - это нечто вокруг внутреннего типа zval” (вроде так там эта структура в пхп исходниках называется).
Господа встрепенулись - как же ты не знаешь хешмап? Это же ассоциативный массив пхп! были уверены что ассоциативный массив это прямо таки хешмапа внутри. и соотв порядок ключей там не хранится.
прямо с пеной у рта говорили что это так и очень удивились когда порядок ключе в ассоциативном пхп массиве соответствовал порядку их добавления.
Alexander
squirrel уже смотрю, спасибо
Alexander
есть у белки Insert("users").Columns("name", "age") , но не вижу, чтобы можно было сделать Insert("users").Columns(my_map)
engelbart
это го
Daniel
engelbart
нету магии тут
Anonymous
Alexander
а я смогу передать в функцию .Exec(), которая принимает разное количество переменных, передать несколько параметров из мапы?
Alexander
если никто не понял, то как вместо args ...interface{} запихнуть массив?
Daniel
array...
Kirill
Kirill
А мапу - нет
Daniel
jib,jxrf
Daniel
вот так правильно:
func makeQuery(table string, myMap map[string]interface{}) (string, []interface{}) {
keys := make([]string, 0, len(myMap))
vals := make([]interface{}, 0, len(myMap))
for key, val := range myMap {
keys = append(keys, key)
vals = append(vals, val)
}
placeholders := strings.Repeat("?,", len(keys))
return fmt.Sprintf(
"INSERT INTO %s (%s) VALUES(%s)",
table,
strings.Join(keys, ", "),
placeholders[:len(placeholders)-1],
),
vals
}