
No1
01.10.2017
19:13:53

Никита
01.10.2017
19:15:54

Mush
01.10.2017
19:16:28

Kirill
01.10.2017
19:19:11

Google

No1
01.10.2017
19:19:46

Valentin
01.10.2017
19:58:45

Andrew
01.10.2017
20:19:08
Уже обсуждали, что iOS открыла ядро?

Никита
01.10.2017
20:29:05

Nick
01.10.2017
20:32:27

xPushkin
01.10.2017
20:33:44
Ссылку? Пожалуйста.

Oleh
01.10.2017
20:36:43
с чего начать для роботы с p2p децентрализованые сети и все в этом духе?
интересно пощупать, но как подойти не знаю

Kirill
01.10.2017
20:56:19

Valentin
01.10.2017
21:26:02

xPushkin
01.10.2017
21:29:06
Спасибо.

Andrey
01.10.2017
21:41:25
О, гошница Лена из Новосиба в Берлин перебралась)

Google

Irina
01.10.2017
21:58:29
В Берлине довольно активный митап гошниц есть

AxiS
01.10.2017
22:27:30

Pawel
02.10.2017
05:30:51

Andrey
02.10.2017
05:32:22
Есть такой же рубевый клуб

Igor
02.10.2017
05:39:42

Andrey
02.10.2017
05:40:30
Привет ей)

Igor
02.10.2017
05:40:48
От кого? ?
по нику не могу догадаться

Andrey
02.10.2017
05:41:41
От более раннего перебежчика)

Igor
02.10.2017
05:42:49
Звучит загадочно ?

Maxim
02.10.2017
07:17:53
Привет! Можно ли создать структуру по названию из строки?
type Test struct {
number string
}
func main() {
test := "Test"
number := "234"
fmt.Printf("%v", test{number}) // не работает
fmt.Printf("%v", (new test()){"123"}) // не работает
fmt.Printf("%v", Test{"123"}) // работает
}
Я хочу выбирать Test или Test2 динамически

Мерлин
02.10.2017
07:21:37

Maxim
02.10.2017
07:22:29
Получится как в примере из gotour
Но из строки так понимаю никак?

Мерлин
02.10.2017
07:22:43

Maxim
02.10.2017
07:24:39
как в моем примере.
1. Имею строку с названием структуры test := "Test"
2. Создаю структуру с названием, которое содержится в строке
test{number}
или
(new test())

Димка
02.10.2017
07:24:44

Maxim
02.10.2017
07:24:53
ага, нужна фабрика

Vasily Romanov
02.10.2017
07:26:11
Так нельзя
Это не пхп

Dmytriy
02.10.2017
07:26:25

Google

Maxim
02.10.2017
07:26:33
ok. Пошел делать switch

Димка
02.10.2017
07:27:15
func BuildObject(name string) IObject {
switch name {
case "Apple" : return &Apple{}
case "Banana": return &Banana{}
}
return nil
}
типа того

Maxim
02.10.2017
07:27:42
@Am1rkin спасибо

Димка
02.10.2017
07:29:35
@Am1rkin спасибо
скорей всего тебе это не нужно,
ты пытаешься понимание других языков перенести в Го,
не надо так ☝️

Мерлин
02.10.2017
07:30:38

in favor
02.10.2017
07:31:06
Разве нельзя эту задачу с помощью интерфейсов сделать? без switch/case?

Димка
02.10.2017
07:31:59

Мерлин
02.10.2017
07:32:16

Maxim
02.10.2017
07:32:53
Я действительно переношу код из пхп
Может и можно, но я пока не знаю как правильно писать на го

Мерлин
02.10.2017
07:33:22

Maxim
02.10.2017
07:33:40
Я прошел
Стало проще)

Димка
02.10.2017
07:53:04
кстати, вот тут поясняется, что возвращать интерфейсы это плохо
https://github.com/golang/go/wiki/CodeReviewComments#interfaces

Vladimir
02.10.2017
07:54:54
конечно плохо )
а кто-то говорит что хорошо?

Anatoly
02.10.2017
08:01:13
https://github.com/golang/go/wiki/CodeReviewComments #mustread

Valentin
02.10.2017
08:09:27
А почему плохо, если конструктор вернет интерфейс? Так компилятор и IDE проверяют, что структура реализует интерфейс верно

Мерлин
02.10.2017
08:11:56

Vadiimmm:-)))
02.10.2017
08:19:12
как присвоить string через рефлексию значению типа nullString?
If structValue.Type().String() == "sql.NullString" {
structValue.SetString(valueString) /// Так не получается
return nil
}

Google

anton
02.10.2017
08:20:40

Vadiimmm:-)))
02.10.2017
08:21:24

Nick
02.10.2017
08:21:43
как к примеру в джава мире. Правильнее вернуть Map. Вместо HashMap

Igor
02.10.2017
08:25:06
Плохо потом мокать и тестировать, но хорошо для драйверов, разных логгеров, и т.п. - всему своё место

anton
02.10.2017
08:26:47

Igor
02.10.2017
08:27:39
Ну и это специфично для котрибуции в либы компилятора ?

Ivan
02.10.2017
08:27:39
Что то я не допонимю с vendor папкой

Мерлин
02.10.2017
08:28:01
как к примеру в джава мире. Правильнее вернуть Map. Вместо HashMap
Если ты захочешь расширить возвращаемый тип, то в случае интерфейса тебе придётся делать чёртову кучу работы, а в случае конкретной структуры — всего лишь добавить методов в её определении. К тому же, ты всегда можешь привести тип к интерфейсу, а вот вытащить тип из интерфейса — довольно геморройная задача

Ivan
02.10.2017
08:28:02
Наличие пакета в vendor, избавляет меня от необходимости иметь либу в GOPATH/src или нет?

Maxim
02.10.2017
08:30:20
Как проверить, если ли элемент в карте???
type Test struct {
}
func (t *Test) isInMap(p *string) (int, bool) {
return t.getMaps()[p]
}
func (t *Test) getMaps() map[string]int {
return map[string]int{
"TEST": 0,
}
}

Constantine
02.10.2017
08:31:00
ok тебе в дорогу ))

Мерлин
02.10.2017
08:31:40

Димка
02.10.2017
08:32:08

Maxim
02.10.2017
08:32:11
мне не нужен elem, а просто проверить есть ли ключ в карте на bool

Dmytriy
02.10.2017
08:32:17

Димка
02.10.2017
08:32:24

Maxim
02.10.2017
08:33:30
Нельзя ли вернуть из метода _, exists := yourMap[key]???
Ведь в exist уже нужный мне bool, зачем делать потом if

Мерлин
02.10.2017
08:33:30

Google

anton
02.10.2017
08:34:03
Разве не наоборот ?
блин, в summary написано так как я написал (вроде даже оттуда дергнул)
http://blog.kamkor.me/Covariance-And-Contravariance-In-Scala/

Nick
02.10.2017
08:35:03

denisx
02.10.2017
08:35:06
ребята привет
нуб-вопросы можно?

Мерлин
02.10.2017
08:35:20

Димка
02.10.2017
08:35:20

Andrew
02.10.2017
08:35:25

Nick
02.10.2017
08:36:03

denisx
02.10.2017
08:36:09
вроде да

Димка
02.10.2017
08:36:20

denisx
02.10.2017
08:36:27
ахаха )

Andrew
02.10.2017
08:36:39
Давай свои вопросы

Мерлин
02.10.2017
08:36:54
Ну эт видимо проблема в го такая
ну, если у тебя есть пять имплементаций интерфейса, и если ты меняешь интерфейс, то тебе придётся менять все свои имплементации и в жабке тоже, нет?

Nick
02.10.2017
08:37:14

denisx
02.10.2017
08:37:22
у меня в одном пакете создаётся коннект к базе. а в другом пакете я делаю pgx.PreparedStatement.

Мерлин
02.10.2017
08:37:33

Maxim
02.10.2017
08:37:55
@twentydraft
func (t *Test) isInMap(p *string) (exist bool) {
myMap := t.getMap()
return _, exist := myMap[p]
}
говорит, что myMap[p] evaluated but not used