Алексей
не путай магию и дефолтную структуру данных
а что в дефолтных структурах данных магии быть не может?
Kirill
а что в дефолтных структурах данных магии быть не может?
здесь - дефолтная структура данных без магии
Brommie
https://pastebin.com/WBTXeuR0 есть файлик 86мб, прогоняю его в поисках мыл, в итоге остаются числовые данные
Brommie
Brommie
такого плана
Brommie
сразу скажу - нуб в го)
Kirill
в выходном файле что?
Kirill
что не так?
Brommie
то же самое и в выходном
Brommie
файлы как 2 капли)
саша
не путай магию и дефолтную структуру данных
Ну ок, это не магия, но их поведение можно было и более простым и понятным сделать.
Daniel
а?!
Daniel
где сложности?
Kirill
ЧТО там не понятно?!
Kirill
файлы как 2 капли)
не знаю твой уровень, так что на всякий случай - ты _точно_ не забыл сделать go build после последней правки?
Brommie
я делаю go run
Brommie
у меня чувство есть, что в том файле что-то не так с переносами строк..
Brommie
и сканер подхватывает
саша
ЧТО там не понятно?!
Непонятно как контролировать доступ к случае и его мутации
Cat
и сканер подхватывает
ну проверь количество итераций
Brommie
хм, спс)
Алексей
слайсы может и хороши с точки зрения производительности, но безопасность не очень и можно отстрелить себе ногу
Kirill
у меня чувство есть, что в том файле что-то не так с переносами строк..
я бы порекомендовал перепроверить, что там за переносы, возможно стоит конвертнуть их перед сканом
Brommie
разница в 256733 строк)
Brommie
3600335−3857068
Kirill
О_о
саша
конкретнее
Конкретнее - если ты куда-то хочешь передать слайс (от слайса) то предварительно лучше прочитать код, которому ты передаешь слайс.
Алексей
конкретнее
Проблема слайсов, что два разных слайса могут указывать на один и тот же массив.
Kirill
разница в 256733 строк)
я бы попросил у тебя пример такого файла
Kirill
разница в 256733 строк)
локально у меня работает норм
Алексей
плюс ещё есть сам массив, и можно довольно легко менять массив сразу из нескольких мест
Алексей
и тогда вполне может наступить веселье
Алексей
поэтому аккуратно надо с ними работать
Brommie
Алексей
либо всегда делать только один слайс созданный make
Brommie
вообще я выбирал эты мыла с файлика побольше регекспом regexp.MustCompile("[^,]+@[^,]+\\.[^,]+")
Brommie
и писал тем же макаром out.WriteString(line + "\n")
Kirill
(когда случайно положил себе редактор %))
Kirill
ты не поверишь
Kirill
список обработался нормально
Cat
передавай копию!
а как же..... ХАЙ ПЕРВОРМАНС....
Brommie
у меня линукс
L
а как же..... ХАЙ ПЕРВОРМАНС....
тогда не передавай большие слайсы
Kirill
а как же..... ХАЙ ПЕРВОРМАНС....
хочешь гарантию без передачи копии - PROT_READ
Daniel
а как же..... ХАЙ ПЕРВОРМАНС....
а ты его мерял, перформанс? мерял?! далее копипаста про бобруйск...
Kirill
у меня линукс
у меня тоже. и?
Brommie
у меня тоже. и?
хз) может винда любит \r\n
Kirill
хз) может винда любит \r\n
любит. а при чем она здесь?
Brommie
любит. а при чем она здесь?
ну думаю че за магия
Kirill
и это секурно считается?
ну - при попытке изменения SiGSEGV вылетит
Мерль
а как же..... ХАЙ ПЕРВОРМАНС....
без бечмарков говорить не о чем и вообще, в большинстве случаев удобство важнее производительности
Kirill
одобряю
с учётом портабельности кода с таким хаком - не особо хорошая идея.
Cat
без бечмарков говорить не о чем и вообще, в большинстве случаев удобство важнее производительности
> без бечмарков говорить не о чем максимум Copy on Write > в большинстве случаев удобство важнее производительности да, но.. почему бы не сделать указатели на иммутабельные данные?
Daniel
потому, что это сложно
Daniel
реально сложно добавить это в язык
саша
потому, что это сложно
Это проще, чем без них, с точки зрения пользователя
саша
так пойди и напиши, чё
С точки зрения пользователя языка
Kirill
я из-за этого на месяц взял отпуск от разработки гудланга
Cat
> максимум Copy on Write что "максимум Copy on Write"?
максимум оптимизации, которую сделает компилятор (по сравнению с `const &`), это CoW
Cat
если данные не изменяются, то всё норм, всё быстро
Cat
но тут же про саму возможность изменить данные, переданные по указателю
Мерль
> без бечмарков говорить не о чем максимум Copy on Write > в большинстве случаев удобство важнее производительности да, но.. почему бы не сделать указатели на иммутабельные данные?
> почему бы не сделать указатели на иммутабельные данные? Go сейчас спроектирован таким образом, что добавить почти любую плюшку без поломки обатной совместимости очень сложно. А обратная совместимость — это главный фетиш разработчиков языка