
Valentin
23.08.2017
16:55:17
С электронными точно проблем нет :)

Мерлин
24.08.2017
12:03:54
https://github.com/lileio/lile

Vital
24.08.2017
12:06:41
как-то звёзд маловато
))

Google

Irek
24.08.2017
12:39:41
))

Мерлин
24.08.2017
13:09:51
At the heart of Hailo: a Golang geoindex library #golang https://sudo.hailoapp.com/services/2015/02/18/geoindex

Kirill
24.08.2017
13:49:43
коллеги из Минска, напоминаю, сегодня в 19:00 в Гамбринусе сходка :)

Alexander
24.08.2017
15:39:22
Коллеги из куала лумпура тут есть?

Kirill
24.08.2017
16:14:06
Мы таки уже на месте

Chuvi
24.08.2017
16:27:39
А Пхукетчане? )

Evgeny
24.08.2017
16:43:12
скорее чангмайне

Alexander
24.08.2017
16:47:23
Нет желающих поработать в вечном лете? )

Andrey
24.08.2017
16:50:58
Вечное лето - это элей?)

Slava
24.08.2017
16:51:31
Вечный смог и пробки скорее

Chuvi
24.08.2017
16:59:40

Diablo
24.08.2017
17:01:55

Alexander
24.08.2017
17:09:02
Это не смог. Воздух чист.

Google

Vladislav
24.08.2017
17:43:58

Sergey
24.08.2017
22:57:17
Товарищи, а подскажите советом.
Есть код, который по очереди открывает файлы и что-то с ними делает. Как правильно закрывать файлы в таком случае? defer f.Close() или f.Close()? defer же только после выполнения функции выполняется и мне кажется, что в случае цикла нужно использовать f.Close().
for _, f := range files {
f, err := os.Open(f)
if err != nil {
panic("Failed to open '" + f.Name() + "'")
}
//some actions
f.Close()
}

Ilya
24.08.2017
23:01:26
A "defer" statement invokes a function whose execution is deferred to the moment the surrounding function returns, either because the surrounding function executed a return statement, reached the end of its function body, or because the corresponding goroutine is panicking.

Daniel
24.08.2017
23:01:34
унести код из тела цикла в отдельную функцию и использовать defer

Ilya
24.08.2017
23:02:12
оставить клоз в конце цыкла.
ибо хрен знает сколько файлов там

Daniel
24.08.2017
23:02:34
и?
какая разница-то, сколько

Ilya
24.08.2017
23:03:06
ну чо и. ОС может нахуй послть когда дескрипторы кончатся. что что

Daniel
24.08.2017
23:03:28
коллега, вы невнимательно читаете

Sergey
24.08.2017
23:03:38

Daniel
24.08.2017
23:04:28
ну и, конечно, этот пример не скомпиляется :) f не может быть и строкой, и дескриптором

Sergey
24.08.2017
23:05:02

Ilya
24.08.2017
23:05:23
а. если через замыкание то да. но зачем

Daniel
24.08.2017
23:06:30
и вот так тоже компилится и работает: https://play.golang.org/p/1PBDNga6CU
то есть - цикл это ДВА скопа
будет добавлено в воскресный доклад, однозначно

Sergey
24.08.2017
23:09:39
охренеть

Google

Sergey
24.08.2017
23:10:00
я только что сам осознал, что f сначала это string
а внутри превращается в дескриптор
и строготипизированный го не ругается
что я с ним так жестоко обхожусь

Daniel
24.08.2017
23:10:52
линтеры должны ругаться

Ilya
24.08.2017
23:10:53
баг?
неа
он не компилит цикл
потому что массив пустой
бггг
он тупо решил - ну его нах проверку делать

Daniel
24.08.2017
23:17:02

Ilya
24.08.2017
23:17:26
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x47c171]
goroutine 1 [running]:
main.main()
/home/brainstorm/work/go/test.go:16 +0x141
exit status 2
это если не пустой

Daniel
24.08.2017
23:17:46
мой пример работает

Kirill
24.08.2017
23:18:05

Ilya
24.08.2017
23:18:11
а ты несуществующий открой

Kirill
24.08.2017
23:18:16
а, ты уже знаешь

Ilya
24.08.2017
23:18:17
я тупо 11111 вбил

Daniel
24.08.2017
23:18:20
зачем несуществующий

Google

Daniel
24.08.2017
23:18:47

Ilya
24.08.2017
23:19:02
if err != nil {
panic("Failed to open '" + f.Name() + "'")
}

Admin
ERROR: S client not available

Ilya
24.08.2017
23:19:06
тут ошыбко
f nil если еггог

Kirill
24.08.2017
23:19:32

Daniel
24.08.2017
23:19:33
строкой выше то было имя файла

Ilya
24.08.2017
23:19:43
короче даже на го можно песатьговнокод
ну так ты сделай чтобы оно левое было

Kirill
24.08.2017
23:19:56
ты же мог заметить :)

Ilya
24.08.2017
23:20:09
f, err := os.Open(f)
if err != nil {
panic("Failed to open '" + f.Name() + "'")
}
неверный кусок
if err != nil { - f nil

Max
24.08.2017
23:20:38
а кто-то работал с blueprint?

Kirill
24.08.2017
23:21:26
но я не знал
я ещё напомню о том, что переменная любого типа может хранить в себе на самом деле абсолютно другой тип

Daniel
24.08.2017
23:21:30

Kirill
24.08.2017
23:21:32
и я говорю не о interface{}

Daniel
24.08.2017
23:22:10
линтеры тоже игнорируют расклад:
$gometalinter.v1 --config ./gometalinter-ci.json cmd/qqq/
cmd/qqq/main.go:19::warning: Errors unhandled.,LOW,HIGH (gas)
cmd/qqq/main.go:19:10:warning: error return value not checked (f.Close()) (errcheck)

Google

Kirill
24.08.2017
23:22:28

Daniel
24.08.2017
23:23:16
а --shadow есть?
$cat ./gometalinter-ci.json
{
"Disable": [
"gotype"
],
"Vendor": true,
"Concurrency": 8,
"Deadline": "15m",
"Skip": [
"gen"
],
"Sort": [
"path",
"line",
"linter"
],
"Exclude": [
"cyclomatic complexity \\d+ of function enumerateQuotes\\(\\) is high \\(> 10\\) \\(gocyclo\\)$"
]
}

Kirill
24.08.2017
23:25:11

Daniel
24.08.2017
23:26:38
1.9 вышла

Kirill
24.08.2017
23:27:28
1.9 вышла
в этом контексте - нужно поздравить или пойти за виски, верёвкой и мылом?

Daniel
24.08.2017
23:30:44
ничего не изменилось
все так же три переменные f разных типов мирно уживаются

Kirill
24.08.2017
23:32:59
это не go2. они не могут.

Daniel
24.08.2017
23:36:36
ну - я проверил :)
я прям обратно в перле себя почуствовал

Kirill
24.08.2017
23:37:42