Taras 🦀
добрый вечер !
Taras 🦀
напомните пожалуйста что надо писать в os.OpenFile, чтобы 1) добавлять в цикле к существующему файлу новые строчки 2) перезаписывать файл при добавлении, опять таки в цикле
Sergius Ofitserov
✋
Taras 🦀
чет я в этих флагах запутался — раньше не получалось дописывать в файл, сейчас не получается перезаписывать))
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Недавно задался вопросом. А как можно что-то на Go написанное поломать...Впринципе кроме кривой бизнесс логики и инжекта environment переменных ничего не придумал
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
А у кого-нибудь есть истории хаков сервисов на Go?
Taras 🦀
так оно очищает только при открытии, потом в цикле записывается и записывается... получается чтобы получить записаным последнюю запись с цикла — надо в цикле и открывать файл? или как-то все же можно открыть перед циклом и в цикле только последнюю запись сохранять?
Anonymous
Чтобы получить последнюю запись с цикла, записывай его во временную переменную. По выходу из цикла в нём останется твоё последнее значение.
Taras 🦀
ну вот мне кое-что посчитать надо, и надо сбрасывать периодически результат на случай когда електричество пропадет и комп вырубится (чтобы заново не начинать)
Taras 🦀
по выходу с електричества временная переменная недоступна 😂 вот в чем трабл, понимаете?)))
朝の日差し ✙
Стоимость бесперебойника, например)
Anonymous
Сделай if loopIndex % 1000 == 0 (запись в файл)
朝の日差し ✙
(К "кое-что посчитать надо")
Anonymous
Записывать каждый тысячный результат в файл к примеру.
Anonymous
Главное чтобы во время записи не вырубили свет, а то останешься ни с чем 😄
Taras 🦀
хорошо, благодарю
Anonymous
А у кого-нибудь есть истории хаков сервисов на Go?
Неа, Go непобедим! (слава святому Робу! Аминь!)
Anonymous
Это ж не Си, чтобы выйти за границу массива и читать память сервера ))
Kirill
Я на сях часто пишу, у меня стабильность софта та же, что и на гошке
Anonymous
Так все говорят. А потом обнаруживаются уязвимости типа bleeding-чототам.
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Я недавно наблюдал как люди пишут на go как на яве. Оно сцуко работает - но очень нечитаемо и убого. И самое обидное эти 30к строк кода не выкинуть просто так...
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Это фабрики и интерфейс с кучей методов на все. А потом ещё и тесты на моках на эти интерфейсы
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Типа на всё есть интерфейс, все создаётся через фабрики. И очень много кода, который на один раз, который обернут в пару-тройку абстракций, чтобы тесты на моках писать
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Но это ещё не всё, это ещё и нейминг GetUserByUserID, GetUserIfExist методы для структуры типа Users
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
И так далее...
Ivan
У структур все поля приватные и геттеры-сеттеры добавлены? :)
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Йеп
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
У структур все поля приватные и геттеры-сеттеры добавлены? :)
А есть кстати линк, чтобы всех тыкать в premature generalisation во время code review?
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Кстати, мне кажется, что это gogland с его дебаггером толкает людей в сторону написания излишне абстрактного кода, который скорее как java чем go. + Gogland до сих пор, как я понял не gofmt код по дефолту
invariance
Ребяты, а как узнать сколько весит переменная в байтах?
invariance
(само собой я про значение на которое она ссылается)
Sergius Ofitserov
В слайде?
invariance
не, вот есть что то типо того
invariance
var := "some text"
invariance
как узнать сколько весит эта строка
invariance
хм, нашел какой то unsafe
Sergius Ofitserov
Аналог как в плюсах. Sizeof
invariance
да я уж увидел
invariance
unsafe.sizeof
invariance
есть еще len, но эт просто длина строки
Sergius Ofitserov
unsafe.Sizeof(s)
Sergius Ofitserov
Да
invariance
угу
Sergius Ofitserov
Len можно юзнуть для сравнения размера слайсов
Sergius Ofitserov
Предполагвю, что считать нужно строку, которую пользователь вводит или статичные символы?
Anonymous
unsafe.Sizeof(s)
Чот не получается... Для любой длины строки выдаёт 16...
MXLTN
друзья нужна помощь по htaccess файлу срочная
MXLTN
$$
朝の日差し ✙
Я просто ньюби и пишу в голэнде, и хз как оно влияет
朝の日差し ✙
Чот не получается... Для любой длины строки выдаёт 16...
Я не знаю, как реализована строка в Go (внутренности типа), но это или размер структуры или каждого отдельного символа
朝の日差し ✙
Kurosaki
ты кодишь на планшете?
朝の日差し ✙
с телефона скрин
朝の日差し ✙
это дока го
invariance
о_О
Anonymous
Хоть стопицот знаков. Видать размеры указателей или чего-то ещё показывает
invariance
ндэээ
Co.In
Хоть стопицот знаков. Видать размеры указателей или чего-то ещё показывает
8 байт - int (указатель) 8 байт - int (длина) Для x64, для 32 будет 8 байт всегда выдавать
Anonymous
8 байт - int (указатель) 8 байт - int (длина) Для x64, для 32 будет 8 байт всегда выдавать
Лучше подскажи, как измерить, сколько занимает переменная в памяти ))
Co.In
len(s) * sizeOf(rune)
Anonymous
+ размер указателя
朝の日差し ✙
Структуры
朝の日差し ✙
*
Oleg
len(s) * sizeOf(rune)
Не надо перемножать на size of rune
Oleg
len возвращает длину в байтах
Co.In
А как тогда длину строки в символах?
Oleg
А как тогда длину строки в символах?
Через RuneCountInString https://stackoverflow.com/questions/12668681/how-to-get-the-number-of-characters-in-a-string
Oleg
Или len([]rune(s))
Evgeniy
почитайте Донована, UTF-8
invariance
жесть какая О_о