Valentin
под Windows вообще хз
Юрий
не подкинете пример как windows в shutdown отправить ?
Eugene
Юрий
а в рамках канала ?
Anton
exec.Command("cmd", "/C", "shutdown", "/s").Run() ? :D
Anton
если вдруг тут напишут решение, то я тоже буду благодарен. Самому нужно
Юрий
есть функция shutdown в пакете golang.org/x/sys /windows
Юрий
вот тока как ей воспользоваться не хватает опыта
Юрий
не понимаю , что ей надо в качестве аргументов
Anton
https://stackoverflow.com/questions/39595252/shutting-down-windows-using-golang-code
Anton
не понимаю , что ей надо в качестве аргументов
Пишут что эта функция для сокета
Юрий
я это видел
Юрий
бля
Юрий
а я голову ломаю зачем ей handle :)
djdf
Доброй ночи! Подскажите, может кто сталкивался, команда go tool cover -html=cover.out -o cover.html не видит файла. В файле cover.out есть полный путь к этому файлу но начинается с "_". Как исправить ситуацию?
Pawel
у нее унутре, в сишном коде, могут быть мутексы (и наверняка есть)
таки докапался до истины select query should work but insert/update maybe not without mutex. https://github.com/mattn/go-sqlite3/issues/350
Alexandr
Всем привет! Есть алиас для стринга type Category string есть слайс categories []Category
Alexandr
нужно заджойнить элементы слайса strings.Join(categories, "|")
Alexandr
как это можно провернуть? писать самому функцию в которой объединять?
Kirill
Просто у вас не алиасы, а собственный тип package main import ( "fmt" "strings" ) type Category = string func main() { categories := []Category{ "A", "B", "C", } fmt.Println(strings.Join(categories, "|")) }
Kirill
Для собственных типов да - пишите свою функцию
Alexandr
спасибо!)
Alex
С точки зрения сборщика мусора. Как более правильно очистить map? 1) mymap = make(map[keytype]valtype) 2) for k := range m { delete(m, k) }
Kirill
mymap=nil
Anatoly
используй первый, если не надо сохранить предыдущий объект, используй второй когда надо сохранить объект
Aleksandr
https://mengzhuo.github.io/yaml-to-go/
Kirill
https://golang.org/pkg/context/
Aleша
друзья, паршу json через unmarshal, в struct, почему то первый элемент заходит, а следом за ним список элементов пуст. помогите)
Aleша
куда копать
Kirill
А что вы за общие зависимости вообще пытаетесь запихать ? Что у вас так и от чего зависит ? В го принято использовать интерфейси
Kirill
для этого не нужен DI
Kirill
Не надо вам никаких контестов и DI, вам бы попробовать почитать, что мешает сделать type MyApp struct { Connect *sql.DB } func (app *MyApp)Handler(){ ... } И в main просто пропихнуть туда sql.DB ?
Kirill
зря
Kirill
брось говняху
Kirill
фу
Kirill
Интерхуяйз. Так никто не делает.
Kirill
Как обычно
Alexander
короче в го принято попроще писать и не городить абстракций где не надо, в отличии от джав пхп и прочего
Alexander
Надо принять и embrace it 😆
Nikita
В го вообще серьезные проблемы в этом плане в следствии некоторых ограничений. Потому все контейнеры крайне примитивные, т.е. мечтать о таком контейнере как autofac не имеет смысла
Nikita
Но я использую github.com/chrisehlen/knex/factory
Dmitriy / დიმიტრი
Есть пакет с функциями для тестирования. Нужно сделать так, что бы при компиляции он исключался из сборки, а если кто-то случайно одну из функций использовал выводилось сообщение "TESTS ONLY" и программа просто падала. Как лучше это сделать? Я думал через сборку с тэгами. Может при сборке есть какие-то дефолтные тэги, которые всегда передаются?
Bogdan
приветствую Подскажите, по братски, начинающему) Есть структура (BaseConfigurator). К ней три метода идут (OnInit, OnGinInit, OnClose). Есть три наследника этой структуры (ViperConfigurator, GinCongifurator, GormConfigurator). Каждый из них может переопределять какой то из методов базовой структуры Пытаюсь сделать такую хрень configs = { new(ViperConfig), new(GinConfig), new(GormConfig), } ругается на ошибку init.go:13:6: cannot use new(ViperConfig) (type *ViperConfig) as type base.BaseConfig in array or slice literal init.go:14:6: cannot use new(GinConfig) (type *GinConfig) as type base.BaseConfig in array or slice literal init.go:15:6: cannot use new(GormConfig) (type *GormConfig) as type base.BaseConfig in array or slice literal
Bogdan
сильно ли то что я делаю соответствует go way и если нет то как сделать что бы соответствовало?)
Bogdan
вполне допускаю что оопшность головного мозга вылезла и не допускает возможности по другому мыслить)
Dmitriy / დიმიტრი
Зачем ты так сразу унижаешься-то? Тут с типами что-то не то, попробуй туда не указатели передавать. configs это же слайс?
Dmitriy / დიმიტრი
Или тебе без указателей надо?
Bogdan
Или тебе без указателей надо?
без разницы, потом эти три метода как то лишь вызвать нужно
Bogdan
var configs []*base.BaseConfig
не, не помогло это(
Dmitriy / დიმიტრი
Погоди. А BaseConfig это именно структура?
Dmitriy / დიმიტრი
Не interface?
Bogdan
Bogdan
если есть возможность задать реализацию методов у интерфейса - буду рад)
Dmitriy / დიმიტრი
так точно type BaseConfig struct { }
Тогда не заработает. Сделай это interface'ом и объяви в ней методы OnInit, OnGinInit, OnClose
Bogdan
Тогда не заработает. Сделай это interface'ом и объяви в ней методы OnInit, OnGinInit, OnClose
да, с интерфейсом работало. Но охота переопределять только нужный метод в конфигураторе, а не все
Dmitriy / დიმიტრი
Можно сделать shadowing, ща найду пример
Dmitriy / დიმიტრი
Можно сделать shadowing, ща найду пример
https://play.golang.com/p/U6M9g9U1C3 Сорян за такой код, давно писал для своих целей, что бы проверить идею
Dmitriy / დიმიტრი
В твоем случае ты создаешь базовый интерфейс и структуру: type IBaseConfig interface { } type BaseConfig struct { } Следующие структуры будут выглядеть так: type NextConfig struct { IBaseConfig } next := NextConfig{BaseConfig{}}
Dmitriy / დიმიტრი
Просто в NextConfig переопределяешь нужный метод и все
Dmitriy / დიმიტრი
при вызове через интерфейс он вызовется поверх метода BaseConfig
Nikita
Дублирую свой вопрос:
Просто не надо импортировать пакет с тестовыми функциями и он не будет включен в сборку
Bogdan
Дублирую свой вопрос:
может чем то поможет) https://stackoverflow.com/questions/10646531/golang-conditional-compilation
Dmitriy / დიმიტრი
Просто не надо импортировать пакет с тестовыми функциями и он не будет включен в сборку
У меня в goland'е импорты автоматически ставятся, могу случайно забыть и импортнуть.
Dmitriy / დიმიტრი
может чем то поможет) https://stackoverflow.com/questions/10646531/golang-conditional-compilation
Ну вот этот вариант и рассматриваю. Думаю может быть есть какие-то тэги которые всегда передаются и их можно использовать для этого
Nikita
Если импорт не используется, то код даже не скомпилится
Dmitriy / დიმიტრი
Ничего себе Получилось Большое спасибо :)))
да не за что) недавно эту фишку тоже обнаружил
Dmitriy / დიმიტრი
Если импорт не используется, то код даже не скомпилится
А если что-то из пакета используется? Например какой-то стажер толком ничего не прочитав взял и импортнул функцию оттуда откуда не требовалось?
Nikita
Ничего себе Получилось Большое спасибо :)))
Просто ошибка в том, что в го нет наследования. Потому, когда та создаешь какую-то BaseStruct, а дальше вкладываешь в следующую структуру, ты не можешь ее использовать как BaseStruct
Nikita
А если что-то из пакета используется? Например какой-то стажер толком ничего не прочитав взял и импортнул функцию оттуда откуда не требовалось?
А что если солнце взайдет на западе и сядет на востоке? Тут явная попытка решить проблему, которой не существует.
Bogdan
Просто ошибка в том, что в го нет наследования. Потому, когда та создаешь какую-то BaseStruct, а дальше вкладываешь в следующую структуру, ты не можешь ее использовать как BaseStruct
благодарю :) я же говорю - оопшность головного мозга) Сейчас с диким интересом ковыряюсь с го, после явы и яваскрипта)