👣 Код дает разные значения для b1 и b2
Почему?
Ответ
Почему?
Ответ
package main
func main() {
const s1 = "Hi World!"
s2 := s1 + ""
println(s1 == s2) //true
println(len(s1) == len(s2)) //true
var b1 byte = 1 << len(s1) / 128 // ==4
var b2 byte = 1 << len(s2) / 128 // ==0
println(b1, b2) // 4 0
}
👍7
👍2
Микрооптимизация кода на Go на примере простого веб-сервиса
💎 Чат: ссылка
Привет, Хабр! Я работаю старшим Go-разработчиком в «Лаборатории Касперского». Сегодня хочу поговорить о том, как искать узкие места и оптимизировать код на Go. Разберу процесс профилирования и оптимизации на примере простого веб-сервиса — покажу, с помощью каких встроенных инструментов искать функции, активнее всего использующие CPU и память. Расскажу, какие можно применять подходы, чтобы повысить производительность. Хотя речь пойдет о микрооптимизации, в моем примере шаг за шагом производительность удалось поднять в 5 раз!
Подробнее: https://habr.com/ru/company/kaspersky/blog/591725/
💎 Чат: ссылка
Привет, Хабр! Я работаю старшим Go-разработчиком в «Лаборатории Касперского». Сегодня хочу поговорить о том, как искать узкие места и оптимизировать код на Go. Разберу процесс профилирования и оптимизации на примере простого веб-сервиса — покажу, с помощью каких встроенных инструментов искать функции, активнее всего использующие CPU и память. Расскажу, какие можно применять подходы, чтобы повысить производительность. Хотя речь пойдет о микрооптимизации, в моем примере шаг за шагом производительность удалось поднять в 5 раз!
Подробнее: https://habr.com/ru/company/kaspersky/blog/591725/
👍12
🔥 Шпаргалка по структурам данных в Go
Некоторые компании проводят собеседования с online написанием кода. Требуется решить олимпиадную задачку на скорость. В таких условиях нет времени посмотреть подробности реализации структур данных — нужно сразу реализовать идею.
Но курсы по алгоритмам и структурам данных дают примеры или на псевдокоде, или на С++. Ещё эталонные решения задач написаны зачастую на С++. Готовясь к собеседованию, составил шпаргалку библиотек — аналогов контейнеров STL, что бы не тратить драгоценное время на поиск.
Чат: ссылка
Подробнее: https://m.habr.com/ru/post/456194/
Некоторые компании проводят собеседования с online написанием кода. Требуется решить олимпиадную задачку на скорость. В таких условиях нет времени посмотреть подробности реализации структур данных — нужно сразу реализовать идею.
Но курсы по алгоритмам и структурам данных дают примеры или на псевдокоде, или на С++. Ещё эталонные решения задач написаны зачастую на С++. Готовясь к собеседованию, составил шпаргалку библиотек — аналогов контейнеров STL, что бы не тратить драгоценное время на поиск.
Чат: ссылка
Подробнее: https://m.habr.com/ru/post/456194/
👍3👎2
Интерфейсы в Go — как красиво выстрелить себе в ногу
Первый очерк из цикла приключений в мире сусликов.
С этой статьи начинается серия небольших рассказов о необычных подводных камнях, которые можно встретить в начале разработки на Go. В статьях будут примеры кода, будьте с ними аккуратнее - не все из них будут компилироваться и работать, читайте внимательно комментарии, везде будет указано, на какой строке происходит ошибка. Также в блоках кода везде табуляция заменена на пробелы - это сделано намеренно, чтобы статьи выглядели у всех одинаково.
💎 Чат: ссылка
Подробнее: https://habr.com/ru/post/597461/
Первый очерк из цикла приключений в мире сусликов.
С этой статьи начинается серия небольших рассказов о необычных подводных камнях, которые можно встретить в начале разработки на Go. В статьях будут примеры кода, будьте с ними аккуратнее - не все из них будут компилироваться и работать, читайте внимательно комментарии, везде будет указано, на какой строке происходит ошибка. Также в блоках кода везде табуляция заменена на пробелы - это сделано намеренно, чтобы статьи выглядели у всех одинаково.
💎 Чат: ссылка
Подробнее: https://habr.com/ru/post/597461/
👍3
Создание базового RESTful (CRUD) с помощью Golang и MySQL
Мы будем разрабатывать приложение, которое предоставляет базовый сервер REST-API для операций CRUD для управления пользователями (id, firstName, lastName, age).
💎 Чат: ссылка
Подробнее: http://bit.ly/3IVkozD
Мы будем разрабатывать приложение, которое предоставляет базовый сервер REST-API для операций CRUD для управления пользователями (id, firstName, lastName, age).
💎 Чат: ссылка
Подробнее: http://bit.ly/3IVkozD
👍5👎2
👍2
Пишем frontend на Golang
1. Вас задрало, что node_modules на простом сайте соревнуются по количеству используемого места с вашей коллекцией музыки?
2. Вы перечитали инструкцию к Redux в шестидесятый раз и поняли две вещи: "До меня кажется доходит..." и "Думаю, мне стоит перечитать это ещё раз!"
3. Вы в очередной раз узнали, что 1 + "1" == "11", а [] - {} == NaN?
4. Билд скрипт в webpack занимает больше места чем ваша библиотека на javascript?
Чат: ссылка
Подробнее: https://habr.com/ru/post/567440/
1. Вас задрало, что node_modules на простом сайте соревнуются по количеству используемого места с вашей коллекцией музыки?
2. Вы перечитали инструкцию к Redux в шестидесятый раз и поняли две вещи: "До меня кажется доходит..." и "Думаю, мне стоит перечитать это ещё раз!"
3. Вы в очередной раз узнали, что 1 + "1" == "11", а [] - {} == NaN?
4. Билд скрипт в webpack занимает больше места чем ваша библиотека на javascript?
Чат: ссылка
Подробнее: https://habr.com/ru/post/567440/
😁5👍1👏1🤮1
Что выведет код?
Anonymous Quiz
20%
012 789
20%
012 987
15%
222 789
18%
222 999
26%
Посмотреть ответы
👍3
Простые трюки для экономии памяти в Golang
При меньшем объеме памяти снижаются затраты на инфраструктуру, а масштабирование становится немного проще. Несмотря на то, что Go известен тем, что не потребляет много памяти, существуют способы дополнительно уменьшить ее потребление.
💎 Чат: ссылка
PS: Прикрепленная картинка была сгенерирована нейронной сетью Midjourney по запросу "new golang logo". Мы уже заменили иконку сайта Golangify на 3й из сгенерированных логотипов.
Подробнее: https://golangify.com/memory-saving-slice-struct-map
При меньшем объеме памяти снижаются затраты на инфраструктуру, а масштабирование становится немного проще. Несмотря на то, что Go известен тем, что не потребляет много памяти, существуют способы дополнительно уменьшить ее потребление.
💎 Чат: ссылка
PS: Прикрепленная картинка была сгенерирована нейронной сетью Midjourney по запросу "new golang logo". Мы уже заменили иконку сайта Golangify на 3й из сгенерированных логотипов.
Подробнее: https://golangify.com/memory-saving-slice-struct-map
👍6
🏃 Пишем мессенджер на Go за час: 7 простых шагов от эхо-сервера к асинхронному обмену сообщениями
Авторы большинства статей по сокетным соединениям в примерах ограничиваются реализацией эхо-сервера. Давайте разовьем эту тему и за 7 простых шагов сделаем вместе консольный мессенджер сообщений.
Чат: ссылка
Подробнее: http://bit.ly/3GIDshM
Авторы большинства статей по сокетным соединениям в примерах ограничиваются реализацией эхо-сервера. Давайте разовьем эту тему и за 7 простых шагов сделаем вместе консольный мессенджер сообщений.
Чат: ссылка
Подробнее: http://bit.ly/3GIDshM
👎6👍2
Имплементируем WebSocket протокол на Go
Благодаря стандартной библиотеке написать многопоточный веб-сервер на Go проще чем на любом другом языке.
💎 Чат: ссылка
Подробнее: https://habr.com/ru/post/674694/
Благодаря стандартной библиотеке написать многопоточный веб-сервер на Go проще чем на любом другом языке.
💎 Чат: ссылка
Подробнее: https://habr.com/ru/post/674694/
Ответ
package main
import (
"fmt"
"io"
"os"
)
func FprintArray[T any](w io.Writer, arr []T) {
if len(arr) == 0 {
return
}
fmt.Fprintf(w, "%v", arr[0])
for _, obj := range arr[1:] {
fmt.Fprintf(w, ", %v", obj)
}
}
func main() {
arr := []int{155, 133, 127, 123, 117, 105, 104, 98, 94, 90, 77, 76, 70, 55, 50, 45, 43, 42, 37, 29}
fmt.Print("[")
FprintArray(os.Stdout, arr)
fmt.Println("]")
}
Пишите свое решение в комментариях👇Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤔2