15 Курсов по Go для начинающих
Мы собрали ссылки на полезные курсы Golang для начинающих.
▪Читать
#golang #junior
@Golang_google
Мы собрали ссылки на полезные курсы Golang для начинающих.
▪Читать
#golang #junior
@Golang_google
Задача
Дан массив целых положительных чисел nums, верните количество различных простых множителей в произведении элементов
nums
. Функция должна называться distinctPrimeFactors.
Обратите внимание, что:
▪Число, большее
1
, называется простым, если оно делится только на 1 и само на себя.▪Целое число val1 является множителем другого целого числа
val2
, если val2
/ val1
является целым числом.Пример
nums = [2,4,3,7,10,6]
distinctPrimeFactors(nums)
# 4
# Пояснение:
Произведение всех элементов в `
nums
` равно: `2 * 4 * 3 * 7 * 10 * 6 = 10080 = 25 * 32 * 5 * 7`.
Существует 4
различных простых множителя, поэтому мы возвращаем 4.
nums = [2,4,8,16]
distinctPrimeFactors(nums)
# 1
# Пояснение:
Произведение всех элементов в `
nums
` равно: `2 * 4 * 8 * 16 = 1024 = 210`.
Существует 1 различный простой множитель, поэтому мы возвращаем 1.
#junior #задача #golang
Пишите свое решение в комментариях👇
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
• regex для проверки того, содержит ли строка только заглавные буквы (картинка 1)
• проверка того, начинается ли строка с "Tre" и заканчивается "s" (картинка 2,3).
• Проверяем заканчивается ли строка на "port" (картинка 4,5).
• проверка наличия в строке подстроки "zoo" (картинка 6,7).
• проверка не содержит ли строка заданную подстроку где-либо внутри себя картинка 8,9).
• проверка наличия в строке целых чисел с помощью regex 10).
https://regex101.com/ - попрактиковаться
🔥Ставьте лайк, если интересно продолжение темы.
#golang #junior #regex
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
package main
import "reflect"
func main() {
f := func() {}
s := []func(){f, f, f, f, f, f}
x := s[1:4]
y := s[3:6]
z := x[2:5]
println(
reflect.DeepEqual(x, y),
reflect.DeepEqual(y, z),
)
}
📌Запустить код
#junior #quiz
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Хмм, в Go легковесные потоки даже называются по-другому — горутины, в отличие от корутин в других языках.
Давайте сравним их и обсудим отличия.
Во-первых, сравнивать горутины и корутины - это как сравнивать горячее с высоким. Они предназначены для разных задач и спроектированы по-разному.
co_yield
и co_return
создают значения, co_await
получает значение. В каком-то смысле это старый недобрый setjmp
/longjmp
с поддержкой хранилища локальных переменных от компилятора.yield
, ни await
. Нужно явным образом организовывать передачу данных из горутины через каналы.Я не буду разводить флейм на тему, что лучше - асинхронные алгоритмы с
yield
/wait
или легковесные потоки с каналами. Лично я препочитаю потоки/горутины, потому что мне проще думать в стиле обмена данными между акторами, а не нарезки функциональности на асинхронную лапшу.Вот такие дела ¯\_(ツ)_/¯
#junior
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
С этой статьей вы углубитесь во внутренние компоненты и посмотрите, как работают слайсы под капотом.
🔗 Подобнее
#golang #junior
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#golang #WebAssembly #junior
▪Статья
▪Код
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#golang #junior #go
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Основные темы, рассмотренные в статье:
Что такое DNS и его значение:
DNS (Domain Name System) действует как телефонная книга интернета, преобразуя удобочитаемые доменные имена (например, google.com) в машинно-читаемые IP-адреса (например, 142.250.182.206), облегчая навигацию в сети.
Пошаговый процесс разрешения DNS:
1️⃣ Инициирование запроса: Локальный резолвер в операционной системе проверяет кэш на наличие IP-адреса запрашиваемого домена. Если адрес отсутствует, запрос направляется к рекурсивному DNS-резолверу.
2️⃣ Обращение к рекурсивному резолверу: Рекурсивный резолвер, такой как Google Public DNS (8.8.8.8) или Cloudflare DNS (1.1.1.1), принимает запрос и начинает процесс поиска.
3️⃣ Запрос к корневому DNS-серверу: Рекурсивный резолвер обращается к корневому серверу, который направляет его к соответствующему серверу верхнего уровня (TLD) для запрашиваемого домена.
4️⃣ Запрос к TLD-серверу: Сервер верхнего уровня (например, для доменов .com или .tech) указывает на авторитетный сервер конкретного домена.
5️⃣ Запрос к авторитетному серверу: Авторитетный сервер предоставляет окончательный IP-адрес запрашиваемого домена.
Создание собственного DNS-сервера на Go:
В статье вы найдите гайд по разработке простого DNS-сервера на Go, и предоставляет исходный код проекта для самостоятельного изучения.
Годное чтиво на выходные )
📌Читать
#junior #golang #go #dns
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM