https://go101.org/blog/2022-08-22-some-undocumented-chang
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
go101.org
Some Undocumented Changes in Go 1.18 and 1.19 -Go 101
Golang online books, articles, tools, etc.
Вывод всех перестановок символов слайса или строки
Реализуйте функцию perm(), которая принимает слайс или строку и печатает все возможные комбинации символов.
Решение:
Пишите свое решение в комментариях👇
#junior #golang
@golang_interview
Реализуйте функцию perm(), которая принимает слайс или строку и печатает все возможные комбинации символов.
Решение:
package main
import "fmt"
// Perm calls f with each permutation of a.
func Perm(a []rune, f func([]rune)) {
perm(a, f, 0)
}
// Permute the values at index i to len(a)-1.
func perm(a []rune, f func([]rune), i int) {
if i > len(a) {
f(a)
return
}
perm(a, f, i+1)
for j := i + 1; j < len(a); j++ {
a[i], a[j] = a[j], a[i]
perm(a, f, i+1)
a[i], a[j] = a[j], a[i]
}
}
func main() {
Perm([]rune("abc"), func(a []rune) {
fmt.Println(string(a))
})
}
Пишите свое решение в комментариях👇
#junior #golang
@golang_interview
Параллельные тесты
Параллельные тесты в #golang позволяют выполнять несколько тестов одновременно. Это особенно полезно для тестов, связанных с IO поскольку другие тесты могут выполняться во время периодов ожидания, а значит, вы будете меньше времени ждать выполнения вашего набора тестов.
Это также поможет вам убедиться в том, что тесты не используют глобальное состояние, иначе они станут нестабильными.
Для этого достаточно пометить тест как параллельный следующим образом: изображение 1.
Бенчмарк-тесты
Бенчмарк-тесты - это отличный способ измерить и оптимизировать эффективность определенных частей кода.
Например, вот два способа конкатенации строки.
С помощью +: изображение 2.
Использование strings.Builder: изображение 3.
Если мы их запустим код, то получим следующий результат:
BenchmarkStringConcat-12 1000000 1200 ns/op BenchmarkStringBuilder-12 5000000 250 ns/op
Это означает, что тест выполнялся за
1000000
и 5000000
итераций, при этом stringConcat затрачивалось 1200 наносекунд на операцию, а strings.Builder - 250. Таким образом, strings.Builder гораздо эффективнее.@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Немного расширенный функционал Mutex в грядущем пакете "go101․org/nstd".
vs
#Golang
@golang_interview
m.Lock()
defer m.Unlock()
vs
defer m.Lock().Unlock()
https://github.com/golang/go/issues/63941
#Golang
@golang_interview
Будет ли в 2023 году больше или меньше звезд, чем в предыдущем? (на данный момент 2 610 110).
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой статье проиллюстрирована попытка определить схему подключения программ на языке Go.
Описаны довольно интересные внутренние особенности языка, реализация хука с помощью Си и ассемблера. Однако все управление осуществялется с помощью Go. Решение довольно универсальное его можно адаптировать к различным платформам и архитектурам процессоров.
https://blog.quarkslab.com/lets-go-into-the-rabbit-hole-part-1-the-challenges-of-dynamically-hooking-golang-program.html
#golang #infosec
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
#golang
https://golang.withcodeexample.com/blog/memory-management-golang-safeguarding-efficiency-stability/
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Golang
🗣 Анонс: https://groups.google.com/g/golang-announce/c/3DyiMkYx4Fo
⬇️ Скачать: https://go.dev/dl/#go1.23.4
#golang
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉 Вышли версии Go 1.23.5 и 1.22.11!
🔒 Безопасность: включены исправления безопасности для CVE-2024-45336 и CVE-2024-45341 в файлах crypto/x509 и net/http.
📡 Анонс: https://groups.google.com/g/golang-announce/c/sSaUhLA-2SI.
📦 Скачать: https://go.dev/dl/#go1.23.5
@golang_interview
#golang #release #Go
🔒 Безопасность: включены исправления безопасности для CVE-2024-45336 и CVE-2024-45341 в файлах crypto/x509 и net/http.
📡 Анонс: https://groups.google.com/g/golang-announce/c/sSaUhLA-2SI.
📦 Скачать: https://go.dev/dl/#go1.23.5
@golang_interview
#golang #release #Go
Онлайн песочница с открытым исходным кодом для запуска кода.
Создана на основе образов Docker с надежной изоляцией, предоставляемой Google gVisor
#golang
▪Github
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM