Je
неплохо
Je
пример с базой достаточно жизненный, когда приложению нужно какое-то тестовое окружение, обычно приходится городить свое, здесь более универсально
Илья
Трэш и рефлексия
🐁 Arutrancetro
буду сейчас Go изучать, главное что он быстро компилируется, исполняется и памяти мало ест =)
🐁 Arutrancetro
как запасное оружие будет =)
🐁 Arutrancetro
Danila
Подскажите, позволяет ли указание interface{} в map мапить переменную любого типа?
Danila
map[string]interface{}{"name": "Wilson", "age":34}
heavycharged
позволяет
Anonymous
Ребят, кто знает в чем ошибка? Версия на локалке 1.10, а на проде 1.10.1. При go build выдаёт такую ошибку:
compile: version "go1.10" does not match go tool version "go1.10.1"
Васильев Виктор
Что вынутри? Вендоринг используешь?
Anonymous
Не использую
🐁 Arutrancetro
блин, интересный язык Go!
🐁 Arutrancetro
прям нравится =)))
🐁 Arutrancetro
да и именование похожее на C#
🐁 Arutrancetro
что привычно =)
Васильев Виктор
Не использую
Обычно такая штука творится когда ты ставишь одну версию поверх другой
Васильев Виктор
возможно у тебя намешаны пару версий
Васильев Виктор
попробй под чистую снести версии все го и поставить одну ту что нужно
Васильев Виктор
блин, интересный язык Go!
Я в него влюбился вообще с первого раза ) Очень приятная штука - располагает к себе)
🐁 Arutrancetro
а для Go есть библиотека нормальная для работы с WinAPI?
Васильев Виктор
Ну она есть
Pawel
Васильев Виктор
но вызовы дорогие и поэтому редко кто использует
Васильев Виктор
Т.Е. низкоуровневое апи лучше вызывать по необходимости
🐁 Arutrancetro
даже память приложений дорого читать?
Васильев Виктор
крайней
Васильев Виктор
Лучше написать на Си то что нужно и делать вызов одной это функции которая уже сама сделает все
Васильев Виктор
Если это нужно так
Васильев Виктор
Сейчас вроде уже не так дорого оно. Но Если это не критично то используй
Васильев Виктор
https://github.com/JamesHovious/w32
🐁 Arutrancetro
ну мне одна функция нужна, чисто память читать =)
Васильев Виктор
Ну тогда пользуй почему бы и нет :)
Васильев Виктор
Особенно если это не критично по скорости то вообще ез проблем
Pawel
но вызовы дорогие и поэтому редко кто использует
it depends. писать сверх производительный драйвер или ещё как-то экономить на спичках - это в любом случае не про Го
а так для винапи есть
https://github.com/lxn/win
https://github.com/lxn/walk
🐁 Arutrancetro
по скорости критично =))
🐁 Arutrancetro
там же вроде простенький вызов Win API функции, для C# довольно быстро работает
🐁 Arutrancetro
для Go тоже должно
Васильев Виктор
Pawel
🐁 Arutrancetro
ну главное, чтобы не в 2 раза
🐁 Arutrancetro
был выбор между Rust и Go. Сначала посмотрел Rust, так там синтаксис вообще черт ногу сломит =)
🐁 Arutrancetro
на Go четкий
Васильев Виктор
Я в раст залез и не захотел туда больше лезть. После приятности го не хочется залазить в такие кушери
🐁 Arutrancetro
ну да, задаешь себе вопрос, - А зачем все эти сложности?
🐁 Arutrancetro
а можно вопрос? зачем срезы нужны?
🐁 Arutrancetro
это получается как указатели на массив?
🐁 Arutrancetro
просто не пойму как применять
Васильев Виктор
Срезы это считай кусок массива
Васильев Виктор
ну грубо говоря
🐁 Arutrancetro
угу, я понял, только не понял зачем их использовать =)
🐁 Arutrancetro
если можно массив =)
Васильев Виктор
А также (не правилньо гвооря) можно говорить о них как о массивах переменной длинны если изначально так инициализировать)
Васильев Виктор
Ну допустим чтобы хранить часть какого-то другого массива и изменять его
🐁 Arutrancetro
ну понятно, короче это сборник указателей на массив
🐁 Arutrancetro
на элементы массива
🐁 Arutrancetro
ну понятно, как в List в Java/C#
Васильев Виктор
Ну как. Слайс это указатель на первый элемент, длинна и вместимость
Васильев Виктор
вот что есть слайс
Васильев Виктор
это не массив указателей
🐁 Arutrancetro
а ок
Васильев Виктор
https://blog.golang.org/go-slices-usage-and-internals
Aleksey
Причём резиновость при расширении постоянно занимает плюс в два раза памяти
Васильев Виктор
Ну можешь думать о них как о динамическим массивах или о кусочках других массивов
🐁 Arutrancetro
вроде создал срез, но функцией append добавить не могу ничего =)
🐁 Arutrancetro
var t []int = make([]int, 10)
append(t, 302300)
🐁 Arutrancetro
а все, понял
🐁 Arutrancetro
надо присваивать куда-то =)
🐁 Arutrancetro
не ну синтаксис кайфовый )
🐁 Arutrancetro
На каждой итерации по срезу возвращаются два значения. Первое - это индекс, а второе - копия элемента по этому индексу.
🐁 Arutrancetro
а каждый раз копию не затратно делать?
Васильев Виктор
Так то ведь не копия)
Васильев Виктор
Я же говорил тбее
Васильев Виктор
слайс это указатель на первый элемент, длинна и его вместимость
Васильев Виктор
если есть место он просто запихнет и вернет обратно
🐁 Arutrancetro
https://go-tour-ru-ru.appspot.com/moretypes/16