bytes.SplitN
и чем он отличается от bytes.Split
Метод
bytes.SplitN
возвращает bytes.Split
заключается в том, что SplitN
n
указывает n
равно 1, метод просто n
больше, чем фактическое количество частей, то метод SplitN
bytes.Split
, в свою очередь, Please open Telegram to view this post
VIEW IN TELEGRAM
😡 А вас тоже бесят облачные сервисы?
Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?
Мы готовим нечто особенное в мире облачных технологий, но сначала хотим услышать правду от тех, кто реально работает с облаками каждый день.
❓Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное
По результатам опроса мы подготовим исследование без маркетингового мусора и вы узнаете, как обстоят дела у коллег.
⚡️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?
Мы готовим нечто особенное в мире облачных технологий, но сначала хотим услышать правду от тех, кто реально работает с облаками каждый день.
❓Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное
По результатам опроса мы подготовим исследование без маркетингового мусора и вы узнаете, как обстоят дела у коллег.
⚡️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
Go
testing
, который Fuzz
Please open Telegram to view this post
VIEW IN TELEGRAM
Функциональные опции позволяют
New()
с десятком Это
Please open Telegram to view this post
VIEW IN TELEGRAM
У нас есть структура ServerConfig. Она хранит все настройки сервера: хост, порт, флаг использования TLS и таймаут.
В функции NewServer мы принимаем срез функций типа Option, который позволяет нам гибко настраивать сервер.
Каждая опция — это просто функция. Причём она не меняет сервер напрямую, а принимает на вход его конфигурацию и меняет только нужное поле.
import "fmt"
// Конфигурация структуры
type ServerConfig struct {
Host string
Port int
UseTLS bool
Timeout int
}
// Тип функции, которая изменяет настройки конфигурации
type Option func(*ServerConfig)
// Новый сервер с конфигурацией по умолчанию
func NewServer(options ...Option) *ServerConfig {
// Настройки по умолчанию
config := &ServerConfig{
Host: "localhost",
Port: 8080,
UseTLS: false,
Timeout: 30,
}
// Применение всех переданных опций
for _, option := range options {
option(config)
}
return config
}
// Опция для изменения хоста
func WithHost(host string) Option {
return func(c *ServerConfig) {
c.Host = host
}
}
// Опция для изменения порта
func WithPort(port int) Option {
return func(c *ServerConfig) {
c.Port = port
}
}
// Опция для включения TLS
func WithTLS(enable bool) Option {
return func(c *ServerConfig) {
c.UseTLS = enable
}
}
// Опция для изменения таймаута
func WithTimeout(timeout int) Option {
return func(c *ServerConfig) {
c.Timeout = timeout
}
}
func main() {
// Создаем сервер с настройками по умолчанию
server := NewServer()
// Печатаем настройки сервера
fmt.Printf("Default server config: %+v\n", server)
// Создаем сервер с измененными настройками
customServer := NewServer(
WithHost("example.com"),
WithPort(9090),
WithTLS(true),
WithTimeout(60),
)
// Печатаем новые настройки сервера
fmt.Printf("Custom server config: %+v\n", customServer)
}
Please open Telegram to view this post
VIEW IN TELEGRAM
bytes.Trim
в Go bytes.Trim
cutset
cutset
cutset
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 Завтра цена на курс «AI-агенты для DS» вырастет
Пока вы думаете — другие уже покупают. Что вы теряете, откладывая решение? Как минимум — 10 000 рублей, именно столько вы переплатите завтра. Как максимум — шанс войти в топ-1% дата-сайентистов, которые умеют строить AI-агенты.
🎓 Чему вы научитесь на курсе:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой
Решение за вами.
👉 Купить курс по старой цене
Пока вы думаете — другие уже покупают. Что вы теряете, откладывая решение? Как минимум — 10 000 рублей, именно столько вы переплатите завтра. Как максимум — шанс войти в топ-1% дата-сайентистов, которые умеют строить AI-агенты.
🎓 Чему вы научитесь на курсе:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой
Решение за вами.
👉 Купить курс по старой цене
proglib.academy
Курс|AI-агенты для DS-специалистов
На курсе ты разберёшься, как работают AI-агенты и как их применять в работе — от текстовых помощников до систем, помогающих принимать решения. Разберем архитектуру агентов, связку с внешними API, пайплайны действий и популярные библиотеки. Курс включает реальные…
switch
switch
switch
case
Please open Telegram to view this post
VIEW IN TELEGRAM
iota
и зачем он нужен при объявлении константiota
iota
const
const
iota
iota
Please open Telegram to view this post
VIEW IN TELEGRAM
Оцените их по шкале 🔥,❤️,👍,😢, 🥱,
где 🔥 — это супер, а 🥱 — это скучно.
Также приветствуются комментарии под постом.
Please open Telegram to view this post
VIEW IN TELEGRAM
bytes.FieldsFunc
Пример кода:
package main
import (
"bytes"
"fmt"
)
func main() {
input := []byte("apple,,orange,,banana")
result := bytes.FieldsFunc(input, func(c rune) bool {
return c == ',' // Разделяем по запятым
})
fmt.Println(result) // [[97 112 112 108 101] [111 114 97 110 103 101] [98 97 110 97]]
}
Please open Telegram to view this post
VIEW IN TELEGRAM
Гонки данных в Go возникают,
Please open Telegram to view this post
VIEW IN TELEGRAM
ООП
В Go нет классов, но есть структуры (struct), которые выполняют роль классов, и методы, привязанные к этим структурам.
Это позволяет поддерживать принципы инкапсуляции и абстракции, но без классической иерархии наследования.
Please open Telegram to view this post
VIEW IN TELEGRAM
int, float64
0
false
""
nil
Please open Telegram to view this post
VIEW IN TELEGRAM
Массив — это структура данных
Как его создать:
[capacity]data_type{element_values}
Срез — это
Как его создать:
s := []data_type{element1, element2, ...}
Особенности срезов:
• Для
len()
, для cap()
.• Для добавления
append()
.•
[first_index:second_index]
или s[:]
.• Удаление элементов
append(s[:i], s[i+1:]...)
.•
•
copy()
.Please open Telegram to view this post
VIEW IN TELEGRAM
package
Пакеты позволяют структурировать программу, разделяя её на логические компоненты.
Особенности в пакетах:
package <имя>
import
для доступаПример:
var Pi = 3.14 // экспортируемая
var radius = 5 // неэкспортируемая
• Программы должны
main
main()
fmt
и math/rand
go get
go.mod
_test.go
Please open Telegram to view this post
VIEW IN TELEGRAM
map
в Go• Создание map
make
m := make(map[string]int)
m["a"] = 1
m["b"] = 2
m := map[string]int{
"a": 1,
"b": 2,
}
• Работа с элементами карты
m["c"] = 3
Получение значения:
value := m["a"]
Проверка наличия ключа:
value, exists := m["b"]
Удаление элемента:
delete(m, "a")
Карты в Go не потокобезопасны.
(sync.Mutex)
sync.Map
var mu sync.Mutex
mu.Lock()
m["a"] = 1
mu.Unlock()
Please open Telegram to view this post
VIEW IN TELEGRAM
Если попытаться
Когда
panic: interface conversion: <interface type> is <actual type>, not <expected type>
Программа
ok
, чтобы обработатьPlease open Telegram to view this post
VIEW IN TELEGRAM
Тест для Golang-разработчиков, проверьте свои знания, готовы ли вы к обучению на курсе.
💻 Ответьте на 20 вопросов за 30 минут и проверьте, готовы ли вы к обучению на онлайн-курсе «Golang Developer. Professional» от OTUS. Сейчас Go становится все востребованнее, благодаря своей производительности, масштабируемости и экосистеме.
После 5 месяцев обучения вы сможете:
— Писать production-ready код, многопоточные и конкурентные программы.
— Понимать синтаксис и внутреннее устройство языка Go.
— Разворачивать микросервисы с помощью Docker.
— Проектировать и реализовывать микросервисную архитектуру на Go.
Также вас ждет прокачка навыков на реальных коммерческих кейсах и под руководством экспертов в этой области. Возможна рассрочка.
👉 ПРОЙТИ ТЕСТ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
💻 Ответьте на 20 вопросов за 30 минут и проверьте, готовы ли вы к обучению на онлайн-курсе «Golang Developer. Professional» от OTUS. Сейчас Go становится все востребованнее, благодаря своей производительности, масштабируемости и экосистеме.
После 5 месяцев обучения вы сможете:
— Писать production-ready код, многопоточные и конкурентные программы.
— Понимать синтаксис и внутреннее устройство языка Go.
— Разворачивать микросервисы с помощью Docker.
— Проектировать и реализовывать микросервисную архитектуру на Go.
Также вас ждет прокачка навыков на реальных коммерческих кейсах и под руководством экспертов в этой области. Возможна рассрочка.
👉 ПРОЙТИ ТЕСТ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Однако важно быть внимательным
Основные моменты:
• Сборщик мусора:
• Указатели:
• Циклические ссылки:
Хотя управление памятью автоматическое
• Срезы:
Это динамические массивы
• Стек и куча:
Память делится на стек
• Escape analysis:
Этот механизм анализирует
Please open Telegram to view this post
VIEW IN TELEGRAM