Пакет net/url в Golang
Пакет url анализирует URL-адреса и реализует экранирование запросов.
https://golang-blog.blogspot.com/2021/09/net-url-package-in-golang.html
Пакет url анализирует URL-адреса и реализует экранирование запросов.
https://golang-blog.blogspot.com/2021/09/net-url-package-in-golang.html
Blogspot
Пакет net/url в Golang
Пустой интерфейс в Golang
Пустой интерфейс может использоваться для хранения любых данных, и он может быть полезным параметром, поскольку может работать с любым типом.
https://golang-blog.blogspot.com/2021/10/empty-interface-in-golang.html
Пустой интерфейс может использоваться для хранения любых данных, и он может быть полезным параметром, поскольку может работать с любым типом.
https://golang-blog.blogspot.com/2021/10/empty-interface-in-golang.html
Blogspot
Пустой интерфейс в Golang
Go для Java разработчиков: Hello world пример
В постах Go для Java разработчиков будут представлены основные отличия Go для быстрого освоения Java разработчиками.
Начнем с небольшого, но полного примера. Он показывает, как реализовать и использовать простой абстрактный тип данных в Go.
https://golang-blog.blogspot.com/2021/10/go-for-java-developers-hello-world.html
В постах Go для Java разработчиков будут представлены основные отличия Go для быстрого освоения Java разработчиками.
Начнем с небольшого, но полного примера. Он показывает, как реализовать и использовать простой абстрактный тип данных в Go.
https://golang-blog.blogspot.com/2021/10/go-for-java-developers-hello-world.html
Blogspot
Go для Java разработчиков: Hello world пример
Go для Java разработчиков: основные отличия Go
Объектно-ориентированное программирование
* В Go нет классов с конструкторами. Вместо методов экземпляра, иерархии наследования классов и поиска динамических методов Go предоставляет структуры и интерфейсы.
* Go позволяет использовать методы любого типа; упаковка не требуется. Получатель метода, который соответствует this в Java, может быть прямым значением или указателем.
https://golang-blog.blogspot.com/2021/10/go-for-java-developers-go-diffs.html
Объектно-ориентированное программирование
* В Go нет классов с конструкторами. Вместо методов экземпляра, иерархии наследования классов и поиска динамических методов Go предоставляет структуры и интерфейсы.
* Go позволяет использовать методы любого типа; упаковка не требуется. Получатель метода, который соответствует this в Java, может быть прямым значением или указателем.
https://golang-blog.blogspot.com/2021/10/go-for-java-developers-go-diffs.html
Blogspot
Go для Java разработчиков: основные отличия Go
Go для Java разработчиков: синтаксис
Декларации
Синтаксис объявления обратный по сравнению с Java. Вы пишете имя, а затем тип. Объявления типов можно легко читать слева направо.
https://golang-blog.blogspot.com/2021/11/go-for-java-developers-syntax.html
Декларации
Синтаксис объявления обратный по сравнению с Java. Вы пишете имя, а затем тип. Объявления типов можно легко читать слева направо.
https://golang-blog.blogspot.com/2021/11/go-for-java-developers-syntax.html
Blogspot
Go для Java разработчиков: синтаксис
Go для Java разработчиков: константы, структуры, указатели
Константы
В Go константы могут быть нетипизированными. Это относится к
- числовым литералам,
- выражениям, использующим только нетипизированные константы,
- и объявлениям const, в которых тип не указан, а выражение инициализатора не типизировано.
https://golang-blog.blogspot.com/2021/11/go-for-java-developers-constants-structs-pointers.html
Константы
В Go константы могут быть нетипизированными. Это относится к
- числовым литералам,
- выражениям, использующим только нетипизированные константы,
- и объявлениям const, в которых тип не указан, а выражение инициализатора не типизировано.
https://golang-blog.blogspot.com/2021/11/go-for-java-developers-constants-structs-pointers.html
Blogspot
Go для Java разработчиков: константы, структуры, указатели
Go для Java разработчиков: срезы, создание значений
Срез - это концептуально структура с тремя полями:
* указатель на массив,
* длина,
* и емкость
https://golang-blog.blogspot.com/2021/11/go-for-java-developers-slices.html
Срез - это концептуально структура с тремя полями:
* указатель на массив,
* длина,
* и емкость
https://golang-blog.blogspot.com/2021/11/go-for-java-developers-slices.html
Blogspot
Go для Java разработчиков: срезы, создание значений
Go для Java разработчиков: методы и интерфейсы
Метод выглядит как обычное определение функции, за исключением того, что у него есть получатель. Получатель аналогичен ссылке this в методе экземпляра Java.
https://golang-blog.blogspot.com/2021/11/go-for-java-developers-methods-interfaces.html
Метод выглядит как обычное определение функции, за исключением того, что у него есть получатель. Получатель аналогичен ссылке this в методе экземпляра Java.
type MyType struct { i int }
func (p *MyType) Get() int {
return p.i
}
var pm = new(MyType)
var n = pm.Get()
https://golang-blog.blogspot.com/2021/11/go-for-java-developers-methods-interfaces.html
Blogspot
Go для Java разработчиков: методы и интерфейсы
Go для Java разработчиков: ошибки, паника и восстановление
Там, где Java обычно использует исключения, Go имеет два разных механизма:
- большинство функций возвращают ошибки;
- только действительно невосстановимые условия, такие как индекс вне допустимого диапазона, создают исключения во время выполнения.
https://golang-blog.blogspot.com/2021/11/go-for-java-developers-errors-panic-recover.html
Там, где Java обычно использует исключения, Go имеет два разных механизма:
- большинство функций возвращают ошибки;
- только действительно невосстановимые условия, такие как индекс вне допустимого диапазона, создают исключения во время выполнения.
https://golang-blog.blogspot.com/2021/11/go-for-java-developers-errors-panic-recover.html
Blogspot
Go для Java разработчиков: ошибки, паника и восстановление
Go для Java разработчиков: горутины и каналы
Go позволяет запустить новый поток выполнения, горутину (goroutine), с помощью оператора go. Он запускает функцию в другой, недавно созданной горутине. Все горутины в одной программе используют одно и то же адресное пространство.
https://golang-blog.blogspot.com/2021/11/go-for-java-developers-goroutines-channels.html
Go позволяет запустить новый поток выполнения, горутину (goroutine), с помощью оператора go. Он запускает функцию в другой, недавно созданной горутине. Все горутины в одной программе используют одно и то же адресное пространство.
https://golang-blog.blogspot.com/2021/11/go-for-java-developers-goroutines-channels.html
Blogspot
Go для Java разработчиков: горутины и каналы
Релиз Go 1.18
Релиз Go, версия 1.18, является важным релизом, включающим изменения в языке, реализации цепочки инструментов, среды выполнения и библиотек.
https://golang-blog.blogspot.com/2022/04/release-golang-1-18.html
Релиз Go, версия 1.18, является важным релизом, включающим изменения в языке, реализации цепочки инструментов, среды выполнения и библиотек.
https://golang-blog.blogspot.com/2022/04/release-golang-1-18.html
Blogspot
Релиз Go 1.18
Релиз Go, версия 1.18
Введение в использование дженериков в Golang
В релизе Go 1.18 добавлена поддержка дженериков. Дженерики — это самое большое изменение, которое было внесено в Go с момента первого релиза с открытым исходным кодом. В этом посте вы познакомитесь с новыми функциями языка. Мы не будем пытаться охватить все детали, но затронем все важные моменты.
Дженерики — это способ написания кода, который не зависит от используемых конкретных типов. Функции и типы теперь могут быть написаны для использования любого набора типов.
https://golang-blog.blogspot.com/2022/05/generics-intro.html
В релизе Go 1.18 добавлена поддержка дженериков. Дженерики — это самое большое изменение, которое было внесено в Go с момента первого релиза с открытым исходным кодом. В этом посте вы познакомитесь с новыми функциями языка. Мы не будем пытаться охватить все детали, но затронем все важные моменты.
Дженерики — это способ написания кода, который не зависит от используемых конкретных типов. Функции и типы теперь могут быть написаны для использования любого набора типов.
https://golang-blog.blogspot.com/2022/05/generics-intro.html
Blogspot
Введение в использование дженериков в Golang
Начало работы с дженериками в Golang
В этом руководстве представлены основы дженериков в Go. С помощью дженериков вы можете объявлять и использовать функции или типы, которые написаны для работы с любым из набора типов, предоставляемых вызывающим кодом.
В этом руководстве вы объявите две простые неуниверсальные функции, а затем зафиксируете ту же логику в одной универсальной функции.
https://golang-blog.blogspot.com/2022/05/getting-started-generics.html
В этом руководстве представлены основы дженериков в Go. С помощью дженериков вы можете объявлять и использовать функции или типы, которые написаны для работы с любым из набора типов, предоставляемых вызывающим кодом.
В этом руководстве вы объявите две простые неуниверсальные функции, а затем зафиксируете ту же логику в одной универсальной функции.
https://golang-blog.blogspot.com/2022/05/getting-started-generics.html
Blogspot
Начало работы с дженериками в Golang
Начало работы с фаззингом в Golang
В этом посте представлены основы фаззинга в Go. При фаззинге случайные данные обрабатываются для вашего теста в попытке найти уязвимости или входные данные, вызывающие сбой. Некоторыми примерами уязвимостей, которые можно найти с помощью фаззинга, являются SQL-инъекции, переполнение буфера, отказ в обслуживании и атаки с использованием межсайтовых сценариев.
https://golang-blog.blogspot.com/2022/09/fuzzing-intro.html
В этом посте представлены основы фаззинга в Go. При фаззинге случайные данные обрабатываются для вашего теста в попытке найти уязвимости или входные данные, вызывающие сбой. Некоторыми примерами уязвимостей, которые можно найти с помощью фаззинга, являются SQL-инъекции, переполнение буфера, отказ в обслуживании и атаки с использованием межсайтовых сценариев.
https://golang-blog.blogspot.com/2022/09/fuzzing-intro.html
Blogspot
Начало работы с фаззингом в Golang
Релиз Go 1.19
Релиз Go, версия 1.19, выходит через пять месяцев после Go 1.18.
Большинство его изменений касаются реализации цепочки инструментов, среды выполнения и библиотек.
https://golang-blog.blogspot.com/2022/09/release-golang-1-19.html
Релиз Go, версия 1.19, выходит через пять месяцев после Go 1.18.
Большинство его изменений касаются реализации цепочки инструментов, среды выполнения и библиотек.
https://golang-blog.blogspot.com/2022/09/release-golang-1-19.html
Blogspot
Релиз Go 1.19
Релиз Go 1.19, заметки о релизе
Релиз Go 1.20
Релиз Go, версия 1.20, вышел через шесть месяцев после Go 1.19. Большинство его изменений касаются реализации цепочки инструментов, среды выполнения и библиотек.
Есть также четыре изменения в языке.
https://golang-blog.blogspot.com/2023/02/release-golang-1-19.html
Релиз Go, версия 1.20, вышел через шесть месяцев после Go 1.19. Большинство его изменений касаются реализации цепочки инструментов, среды выполнения и библиотек.
Есть также четыре изменения в языке.
https://golang-blog.blogspot.com/2023/02/release-golang-1-19.html
Blogspot
Релиз Go 1.20
Релиз Go 1.21
Go 1.21 добавляет в язык три новых встроенных модуля.
- Новые функции min и max вычисляют наименьшее (или наибольшее для max) значение фиксированного числа заданных аргументов.
- Новая функция clear удаляет все элементы с карты или обнуляет все элементы среза.
Большинство изменений релиза касаются реализации цепочки инструментов, среды выполнения и библиотек. Улучшена работа с универсальными типами (определенно Golang продолжает догонять Java с ее дженериками :)) )
Добавлены несколько новых пакетов: log/slog, testing/slogtest, cmp, slices, maps. Последние два пакета хотелось бы отметить отдельно - как прототипы Java Collections Framework для Golang.
https://golang-blog.blogspot.com/2023/08/release-golang-1-21.html
Go 1.21 добавляет в язык три новых встроенных модуля.
- Новые функции min и max вычисляют наименьшее (или наибольшее для max) значение фиксированного числа заданных аргументов.
- Новая функция clear удаляет все элементы с карты или обнуляет все элементы среза.
Большинство изменений релиза касаются реализации цепочки инструментов, среды выполнения и библиотек. Улучшена работа с универсальными типами (определенно Golang продолжает догонять Java с ее дженериками :)) )
Добавлены несколько новых пакетов: log/slog, testing/slogtest, cmp, slices, maps. Последние два пакета хотелось бы отметить отдельно - как прототипы Java Collections Framework для Golang.
https://golang-blog.blogspot.com/2023/08/release-golang-1-21.html
Blogspot
Релиз Go 1.21
Релиз Go 1.21, Golang 1.21
Релиз Go 1.22
Изменения в языке
Go 1.22 вносит два изменения в циклы for.
- Раньше переменные, объявленные в цикле for, создавались один раз и обновлялись на каждой итерации. В Go 1.22 каждая итерация цикла создает новые переменные, чтобы избежать случайных ошибок совместного использования.
- Циклы for теперь могут охватывать целые числа. Например:
https://golang-blog.blogspot.com/2024/05/release-golang-1-22.html
Изменения в языке
Go 1.22 вносит два изменения в циклы for.
- Раньше переменные, объявленные в цикле for, создавались один раз и обновлялись на каждой итерации. В Go 1.22 каждая итерация цикла создает новые переменные, чтобы избежать случайных ошибок совместного использования.
- Циклы for теперь могут охватывать целые числа. Например:
package main
import "fmt"
func main() {
for i := range 10 {
fmt.Println(10 - i)
}
fmt.Println("go1.22 has lift-off!")
}
https://golang-blog.blogspot.com/2024/05/release-golang-1-22.html
Blogspot
Релиз Go 1.22
Релиз Go 1.22, Golang
Релиз Go 1.23
Изменения в языке
Go 1.23 делает эксперимент (Go 1.22) "range-over-func" частью языка. "range" в цикле "for-range" теперь принимает функции итератора следующих типов
как выражения диапазона. Вызовы функции аргумента итератора создают значения итерации для цикла "for-range".
https://golang-blog.blogspot.com/2024/08/release-golang-1-23.html
Изменения в языке
Go 1.23 делает эксперимент (Go 1.22) "range-over-func" частью языка. "range" в цикле "for-range" теперь принимает функции итератора следующих типов
func(func() bool)
func(func(K) bool)
func(func(K, V) bool)
как выражения диапазона. Вызовы функции аргумента итератора создают значения итерации для цикла "for-range".
https://golang-blog.blogspot.com/2024/08/release-golang-1-23.html
Blogspot
Релиз Go 1.23
Релиз Go 1.24
Большинство изменений в нем касаются реализации цепочки инструментов, среды выполнения и библиотек.
https://golang-blog.blogspot.com/2025/03/release-golang-1-24.html
Большинство изменений в нем касаются реализации цепочки инструментов, среды выполнения и библиотек.
https://golang-blog.blogspot.com/2025/03/release-golang-1-24.html
Blogspot
Релиз Go 1.24
Релиз Go 1.24, заметки к релизу Golang