@gogolang

Страница 274 из 1630
Pauline
25.05.2017
17:37:46
Шаблоны (templates) в Си++ это частный случай обобщённых типов (generic types). Обобщённые типы в Си++ очень мощные, Тьюринг-полные. Вы, например, можете вычислять числа Фибоначчи во время компиляции с помощью шаблонов Си++.

это?

Slava
25.05.2017
17:44:54
Дима сразу с козырей зашёл

Мерлин
25.05.2017
17:45:31
Google
Slava
25.05.2017
17:46:09
это всё домыслы, вопрос был планируется ли - ответ, нет, не планируются

Мерлин
25.05.2017
17:52:55
Увы

Daniil
25.05.2017
19:59:36
гошники, помогите плс. Когда я пишу func (p *MyType) f() { return *p } происходит копирование же?

Dmitriy
25.05.2017
20:01:15
А мы можем сделать свой форк Go с дженериками?

Daniil
25.05.2017
20:05:15
еще у меня есть type M interface { Create() (*M, error) } я хочу его использовать так var m M .... someM := m.Create() someM.Create() <- compile error (pointer to interface not an interface) как вообще правильно пистаь такие штуки? Вся суть метода Create() в том что он может вернуть или указатель на объект от которого его и вызывают (m) или на новый интсанс какого-то типа данных... ЧЯДНТ? Понятно чего хочу добиться или как-то иначе расписать?

Dmitriy
25.05.2017
20:07:50
@matrixd , ты пытаешься вернуть указатель на интерфейс. Так как M – это интерфейс, то возвращать нужно просто M

Олег
25.05.2017
20:08:29
гошники, помогите плс. Когда я пишу func (p *MyType) f() { return *p } происходит копирование же?
Если MyType - структура или примитивный тип - да. Если еще тип возвращаемого значения у функции написать правильный.

Dmitriy
25.05.2017
20:09:35
Мне понравился rust, но проблема там в том, что поддержка от IDE скудная... а из-за этого любая мелкая программа намного тяжелее пишется

Daniil
25.05.2017
20:10:55
@matrixd , ты пытаешься вернуть указатель на интерфейс. Так как M – это интерфейс, то возвращать нужно просто M
а у меня не произойдет копирования? type M interface { Create() (M, error) } type K struct { v int32 } func (k *K) Create() (M, error) { return *k, nil } ?

или я вообще все не так понимаю и это не взлетит даже?

Олег
25.05.2017
20:11:40
или я вообще все не так понимаю и это не взлетит даже?
Не взлетит, потому что K и *K - разные типы. K не имплементирует M, а *K - имплементирует.

Google
Dmitriy
25.05.2017
20:11:54
измени return *k, nil на return k, nil

Daniil
25.05.2017
20:12:05
и тогда копирования не будет?

Dmitriy
25.05.2017
20:12:11
тогда не произойдет копирования и взлетит

да

тебе нужно копирование?

Daniil
25.05.2017
20:13:05
а если захочу то делаю func (k *K) Create() (M, error) { copy := *k return &copy, nil } и будет копия?

Dmitriy
25.05.2017
20:13:20
Да

Daniil
25.05.2017
20:13:48
тебе нужно копирование?
я хочу написать так чтобы это было деталью реализации. т.е. тот кто работает с интерфейсом не знает копирование там, инициалзация или возврат указатель на уже созданный объект

Dmitriy
25.05.2017
20:14:14
Тогда описанный тобой выше метод подходит

для твоей цели

Daniil
25.05.2017
20:14:24
окей, спасибо

Dmitriy
25.05.2017
20:15:25
Ну да, целесобразность такого интерфейса – это уже другой вопрос)

Daniil
25.05.2017
20:16:40
Что за интерфейс такой, если не секрет? :)
для обращения к бд. Может будет работать все приложение на одном коннекте, может будет асинхронно а соединения будут под капотом, может...

type DB interface { Init() (*DB, error) GetData(d_type byte, from uint32, to uint32) ([]DBData, error) Close() }

идея в том что корутина, которая должна спросить у база что-то дергает Init() && defer Close()

copy конструкторов то нету и всего такого)

ну или лучше запилить какойнить DBConnectionProvider...

Олег
25.05.2017
20:19:56
Только хотел предложить.

Google
Daniil
25.05.2017
20:20:10
ахах?

почему?)

Олег
25.05.2017
20:22:00
Звучит по-джавистски. Еще бы AbstractFactoryBuilder дописать :) Можно назвать интерфейс типа DBPool :) Пусть он спавнит соединения к БД по какому-то своему внутреннему алгоритму, чтобы реализация самого соединения не менялась :)

Single Responsibility Principle

Daniil
25.05.2017
20:22:47
ну может быть

но пул скорее еще более абстрактная сущность

а тут будет зависить от реализации драйвера для бд

)

Олег
25.05.2017
20:23:52
Ну да, я не знаю всей картины :)

Roman
26.05.2017
04:26:43
func main() { log.Println("App started") for { log.Println("--------------------------") NewsUpdater() time.Sleep(time.Minute * 3) } } а вот так можно делать или это лютый пиз***?

Konstantin
26.05.2017
04:29:10
Всем бодрого времени суток. Прошу совета, пишу консольную утилиту, которая в ходе своей работы запрашивает пароль. Подскажите, пожалуйста, как реализовать, чтоб при вводе пароля символы введенные пользователем не отображались. Либо вообще ничего не отображалось, либо символы заменялись "*", например.

Quet
26.05.2017
04:33:28
я б вообще взял что-то типа readline (есть даже pure go реализация его)

Konstantin
26.05.2017
04:39:48
Оно? https://stackoverflow.com/questions/2137357/getpasswd-functionality-in-go
Да, что-то похоже, спасибо, буду пробовать

?FLERRY?
26.05.2017
04:45:32
Roman
26.05.2017
04:49:53
@rostel спасибо, оно!

Мерлин
26.05.2017
09:27:22
https://github.com/dariubs/GoBooks?utm_source=golangweekly&utm_medium=email

Pawel
26.05.2017
09:43:04
Коллеги, "Go на практике" есть у кого нибудь в электронном виде?

/dev/null
26.05.2017
09:43:33
Google
Илья
26.05.2017
09:53:23
Ivan
26.05.2017
09:56:02
a case в switch в go неззя как нибудь объеденять?

i
26.05.2017
09:56:47
case A, B, C:

Илья
26.05.2017
09:56:56
если switch string{ case "1","2","3": }

Ivan
26.05.2017
09:59:30
спасибо!

А не знаете случайно какую нить тулу, что б ей можно выхлоп от %#v засунуть и полуичить его форматированным для чтения глазами?

Ivan
26.05.2017
10:59:08
Сорри, у меня уже проблема мне godebug выводит #v хз как я на это повлияю

а мне надо что б , раз и переформатировали с отступами и иерархией

Илья
26.05.2017
10:59:55
напиши на перле :)

Ivan
26.05.2017
11:01:15
могу да, но вдруг готовое

i
26.05.2017
11:01:21
spew

Ivan
26.05.2017
11:01:41
мне уже вывели данные через %#v я это не могу поменять

мне их отформатировать бы

Илья
26.05.2017
11:03:21
https://godoc.org/github.com/davecgh/go-spew/spew

кстати да

Ivan
26.05.2017
11:05:02
у меня грубо говоря есть бинарник который вот так плюется []validator.valueField{validator.valueField{name:"a.b.c.d", gtype:"string", value:"1", iterate:"a.b"}, validator.valueField{name:"a.b", gtype:"[]struct", value:[]interface {}{map[string]interface {}{"c":map[string]interface {}{"d":"1"}}, map[string]interface {}{"c":map[string]interface {}{"d":"2"}}}, iterate:""}}

а хочется что б красивенько { "a": { "b": [ { "c": { "d": "1" } }, { "c": { "d": "2" } } ] } }

я имею ввиду отступы всякие. (данные в примерах разные)

Илья
26.05.2017
11:08:16
ну, если ты хочешь такое, то стоит плеваться json ом? :)

Google
Ivan
26.05.2017
11:08:55
эх, не получается у меня донести

смотрите, есть godebug

Eduard
26.05.2017
11:09:21
"как сделать по аналогии JSON.stringify(obj, null, 2)"

форматированный джсон

Ivan
26.05.2017
11:09:54
да, типа того

json то у меня vim отлично форматирует

а вывод godebug нечем

Наверное придется godebug попатчить, да?

Илья
26.05.2017
11:12:55
конечно :)

Ivan
26.05.2017
11:15:54
хо, блин дольше форматер искал

там правда просто

Nafania
26.05.2017
12:42:53
Ребят, на митап в лазаду ходил кто вчера?

Ivan
26.05.2017
12:44:17
А вот смотрите, ещё вопросик интересный. У меня есть файл с наборами записей в json {},{} и тд, каждая запись структура Только с разделителем беда, нет его. Некоторые по строкам поделены, некоторые нет (отформаированы т.е. содержат \n внутри) {"a":1} {"a":[ 1,2,3 ]} как бы мне придумать их читать по записям?

Сергей
26.05.2017
12:46:01
читать посимвольно и считать открытые и закрытые {}

Ivan
26.05.2017
12:46:46
ох, и правда, спасибо!

Страница 274 из 1630