Daniel
Daniel
Daniel
и вот так тоже компилится и работает: https://play.golang.org/p/1PBDNga6CU
Daniel
то есть - цикл это ДВА скопа
Daniel
будет добавлено в воскресный доклад, однозначно
Sergey
охренеть
Sergey
я только что сам осознал, что f сначала это string
Sergey
а внутри превращается в дескриптор
Sergey
и строготипизированный го не ругается
Sergey
что я с ним так жестоко обхожусь
Daniel
линтеры должны ругаться
Ilya
баг?
Ilya
неа
Ilya
он не компилит цикл
Ilya
потому что массив пустой
Ilya
бггг
Ilya
он тупо решил - ну его нах проверку делать
Ilya
Ilya
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
Ilya
это если не пустой
Daniel
мой пример работает
Kirill
Ilya
а ты несуществующий открой
Kirill
а, ты уже знаешь
Ilya
я тупо 11111 вбил
Daniel
зачем несуществующий
Ilya
if err != nil {
panic("Failed to open '" + f.Name() + "'")
}
Ilya
тут ошыбко
Ilya
f nil если еггог
Daniel
строкой выше то было имя файла
Daniel
Ilya
короче даже на го можно песатьговнокод
Ilya
ну так ты сделай чтобы оно левое было
Kirill
ты же мог заметить :)
Ilya
f, err := os.Open(f)
if err != nil {
panic("Failed to open '" + f.Name() + "'")
}
Ilya
неверный кусок
Ilya
if err != nil { - f nil
MXLTN
а кто-то работал с blueprint?
Kirill
но я не знал
я ещё напомню о том, что переменная любого типа может хранить в себе на самом деле абсолютно другой тип
Kirill
и я говорю не о interface{}
Daniel
линтеры тоже игнорируют расклад:
$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)
Kirill
Daniel
а --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
Daniel
1.9 вышла
Kirill
1.9 вышла
в этом контексте - нужно поздравить или пойти за виски, верёвкой и мылом?
Daniel
ничего не изменилось
Daniel
все так же три переменные f разных типов мирно уживаются
Kirill
это не go2. они не могут.
Daniel
ну - я проверил :)
Daniel
я прям обратно в перле себя почуствовал
Daniel
это да..
Kirill
я был очень наивен
Daniel
я как раз не думал ничего такого
Daniel
но вот это просто сюрприз
Kirill
в перле как-то не питаешь надежды ни на что
Kirill
в своё время сюрпризом было увидеть в top20 ни одной своей функции
Daniel
это как раз совершенно не сюрприз
Daniel
я ни в одном языке своего там обычно не вижу
Kirill
то тебе рантайм, то ещё какая-то дичь из stdlib, то какая-то внутренняя функция fasthttp
Kirill
я тогда написал сначала top10, а там один runtime да stdlib. думал, что я как-то не так запустил и он не показывает мой код в принципе
Kirill
ан нет, смотришь дальше - находишь что-то своё. но настолько незначительно, что думаешь - какого хрена я должен использовать встроенные типы, когда всё, что работает с приемлемой скоростью - структурки да unsafe?
Kirill
но, к сожалению, ничего лучше гошки я так и не видел.
Michael
оф доки Go реально хороши
Daniel
Про перворманс - немного сказки
Anonymous
@twentydraft думаю pinned message можно убрать.
⏺ Vаdim
парни, подскажите например есть число byte 32, как его сделать string "32"?
engelbart
А мне тут странного хочется.
prefix_scan по map[string]string
возможно?
Anonymous