Публикации по теме 'golang'
Поточно-безопасный кэш в Go с sync.Map
Реализуйте свой собственный потокобезопасный кеш без внешних зависимостей
Кэширование является важным аспектом оптимизации производительности современных приложений. Он позволяет хранить и быстро извлекать результаты дорогостоящих операций или часто используемых данных, уменьшая необходимость повторного вычисления или многократного извлечения данных. В этой статье мы рассмотрим, как реализовать потокобезопасный кеш в Go с помощью пакета sync.Map . Эта реализация кэша поддерживает..
Превосходный текст для разработки #golang
Я пробовал много всего, чтобы настроить мою среду sublime text 3 , и я придумал следующую конфигурацию. Это позволяет мне делать:
Перейти к определению / объявлению с помощью коротких клавиш или щелчка мыши Автозаполнение даже в сложных ситуациях Рефакторинг с учетом контекста Автоматически проверять и проверять мои коды и другие вспомогательные инструменты И более…
Вот инструменты, необходимые для работы этой настройки:
$ go get -u github.com/nsf/gocode
$ go get -u..
Пространства сообщества Golang, которые вам нужно знать!
Go — это язык программирования, популярность которого за последнее десятилетие значительно возросла. Разработчики Go часто дружелюбные, готовые помочь люди, которые всегда готовы дать совет или помочь другим в их проектах. Чтобы начать использовать Go для своего следующего проекта, важно, чтобы у вас был доступ к местам сообщества Go, где программисты могут делиться идеями и обсуждать темы, связанные с программированием на Go. Вот список самых популярных пространств сообщества Go...
Изучение Go, путешествие: управление потоком и группировка данных № 3
Всем привет! приятно снова встретиться с вами, надеюсь, у вас все хорошо. В этой статье я хочу поделиться своим прогрессом в изучении языка программирования Go. На прошлой неделе я узнал о потоке управления и группировке данных.
Поток управления
Что такое поток управления? В информатике поток управления — это порядок, в котором выполняются или оцениваются отдельные операторы, инструкции, функции или вызовы. Обычно ваш компьютер считывает вашу программу строка за строкой, но мы..
LeetCode — Повернуть список
Постановка задачи
Учитывая голову связанного списка, поверните список вправо на k мест.
Постановка задачи взята с: https://leetcode.com/problems/rotate-list
Пример 1:
Input: head = [1, 2, 3, 4, 5], k = 2
Output: [4, 5, 1, 2, 3]
Пример 2:
Input: head = [0, 1, 2], k = 4
Output: [2, 0, 1]
Ограничения:
- The number of nodes in the list is in the range [0, 500]
- -100 <= Node.val <= 100
- 0 <= k <= 2 * 10^9
Объяснение
В проблеме..
Почему срезы иногда изменяются при передаче по значению в Go?
В моем последнем сообщении в блоге мы говорили о некоторых различиях между срезом и массивом. А именно, мы обсудили, что срез имеет как capacity , так и length , а массив имеет только длину. Мы также кратко рассмотрели, как слайс использует массив за кулисами как часть своей структуры данных. Если это все новости для вас, я предлагаю вам ознакомиться со статьей.
В этом посте мы продолжим это обсуждение и поговорим о том, как эти дизайнерские решения могут повлиять на ваш код и..
Ценность получения
Ценность получения
Головоломка
Как вы думаете, что напечатает следующая программа?
package main
import (
"fmt"
)
type Coordinate struct {
Lat float64
Lng float64
}
func (c *Coordinate) String() string {
return fmt.Sprintf("%f/%f", c.Lat, c.Lng)
}
func main() {
c := Coordinate{32.5253837, 34.9408283}
fmt.Println(c)
}
Эта программа напечатает: {32.5253837 34.9408283} .
Ждать! Что? Coordinate реализует интерфейс fmt.Stringer . Разве ты..