🤔11👍3👏3🤮2
Задача. Поменяйте местами значения переменных без использования промежуточной переменной.
Реализуйте
Код с решением будет завтра.
#задача
Реализуйте
swap()
, обменивающую значения двух переменных, не используя третью переменную.Код с решением будет завтра.
#задача
👍1
Ответ на «Поменяйте местами значения переменных без использования промежуточной переменной.»
Во многих других языках над этой задачей придется подумать, в Go же реализовать ее просто.
#задача
Во многих других языках над этой задачей придется подумать, в Go же реализовать ее просто.
package mainДостаточно просто включить инструкцию
import "fmt"
func main() {
fmt.Println(swap())
}
func swap() []int {
a, b := 15, 10
b, a = a, b
return []int{a, b}
}
b, a = a, b
, на чьи данные будет ссылаться переменная, не взаимодействуя ни с одним из ее значений.#задача
💩14🔥7👍3🤮3
😁33👍4👎4
Ответ на «Можно ли вернуть из функции несколько значений?»
Да. Функции в Go возвращают несколько значений в инструкции
Да. Функции в Go возвращают несколько значений в инструкции
return
, разделяя их запятыми.package main#собеседование
import "fmt"
func main() {
sum := 0
for i := 0; i < 10; i++ {
sum += i
}
fmt.Println(sum)
}
💩28😁18👍2😢2
Задача. Как легче всего проверить срез на пустоту?
Создайте программу, проверяющую срез на пустоту. Найдите самое простое решение.
Код с решением будет завтра.
#задача
Создайте программу, проверяющую срез на пустоту. Найдите самое простое решение.
Код с решением будет завтра.
#задача
💩10👍1
Ответ на «Как легче всего проверить срез на пустоту?»
Легче всего проверить срез на пустоту с помощью встроенной функции
Например:
Легче всего проверить срез на пустоту с помощью встроенной функции
len()
, которая возвращает длину среза. Если len(slice) == 0
, значит срез пуст.Например:
package main#задача
import "fmt"
func main() {
r := [3]int{1, 2, 3}
if len(r) == 0 {
fmt.Println("Empty!")
} else {
fmt.Println("Not Empty!")
}
}
😁20👍3👎3🤔1🤯1
Ответ на «Что такое замыкания функций?»
Замыкание функции — это значение функции, ссылающееся на переменные вне ее тела. Такая функция может обращаться к этим переменным и присваивать им значения.
Например,
Замыкание функции — это значение функции, ссылающееся на переменные вне ее тела. Такая функция может обращаться к этим переменным и присваивать им значения.
Например,
adder()
возвращает замыкание, привязанное к собственной переменной sum
, на которую оно ссылается.package main#собеседование
import "fmt"
func adder() func(int) int {
sum := 0
return func(x int) int {
sum += x
return sum
}
}
func main() {
pos, neg := adder(), adder()
for i := 0; i < 10; i++ {
fmt.Println(
pos(i),
neg(-2*i),
)
}
}
👍17💩6🤔2
👍16
Задача. Реализуйте поведение min и max.
Реализуйте функции
Код с решением будет завтра.
#задача
Реализуйте функции
Min(x, y int)
и Max(x, y int)
, получающие два целых числа и возвращающих меньшее или большее значение соответственно.Код с решением будет завтра.
#задача
💩11🤔4🔥1
Ответ на «Реализуйте поведение min и max.»
По умолчанию Go поддерживает
По умолчанию Go поддерживает
min
и max
только для чисел с плавающей запятой, используя для этого math.min
и math.max
. Вам потребуется создать собственные реализации, чтобы то же самое можно было проделать для целых чисел.package main#задача
import "fmt"
// Min возвращает меньшее из x или y.
func Min(x, y int) int {
if x > y {
return y
}
return x
}
// Max возвращает большее из x или y.
func Max(x, y int) int {
if x < y {
return y
}
return x
}
func main() {
fmt.Println(Min(5,10))
fmt.Println(Max(5,10))
}
💩21👍5🔥2👏1
Разработка системы заметок с нуля
Часть 1: проектирование микросервисной архитектуры
Мы спроектировали микросервисную архитектуру.
Часть 2: REST API для RESTful API Service + JWT + Swagger
Разработали RESTful API Service на Golang cо Swagger и авторизацией.
Часть 3: знакомство с Neo4j, работа над микросервисами CategoryService и APIService
Была посвящена знакомству с графовой БД Neo4j и работе над микросервисами CategoryService и APIService.
Часть 4: разработка микросервисов NoteService, TagService и UserService
Была посвящена разработке микросервисов.
Часть 5: знакомство с объектным хранилищем MinIO и разработка микросервиса на Golang
Golang Чат: @golang_talks
Часть 1: проектирование микросервисной архитектуры
Мы спроектировали микросервисную архитектуру.
Часть 2: REST API для RESTful API Service + JWT + Swagger
Разработали RESTful API Service на Golang cо Swagger и авторизацией.
Часть 3: знакомство с Neo4j, работа над микросервисами CategoryService и APIService
Была посвящена знакомству с графовой БД Neo4j и работе над микросервисами CategoryService и APIService.
Часть 4: разработка микросервисов NoteService, TagService и UserService
Была посвящена разработке микросервисов.
Часть 5: знакомство с объектным хранилищем MinIO и разработка микросервиса на Golang
Golang Чат: @golang_talks
🔥15👍3💩1
Полезная статья на Хабр о Конкурентности Go
В ней Golang-разработчик в МТС Digital Артем Чаадаев собрал и подробно разобрал наиболее подходящие примеры использования конкурентного кода в Go на основе личного опыта.
Хотите узнать, как писать конкурентный код, и как с его помощью решать бизнес-кейсы? Значит, вам сюда.
В ней Golang-разработчик в МТС Digital Артем Чаадаев собрал и подробно разобрал наиболее подходящие примеры использования конкурентного кода в Go на основе личного опыта.
Хотите узнать, как писать конкурентный код, и как с его помощью решать бизнес-кейсы? Значит, вам сюда.
Хабр
Конкурентность в Go: пять примеров
Привет, Хабр! Я Артем Чаадаев, Golang-разработчик в МТС Digital. Традиционно считается, что главная фича Go – это «многопоточность из коробки». Этому посвящено немало статей, авторы которых...
👍9🔥5👏2👎1😁1
Задача. Отформатируйте строку без ее вывода
Найдите самый простой способ отформатировать строку с переменными, не выводя значение.
Код с решением будет завтра.
#задача
Найдите самый простой способ отформатировать строку с переменными, не выводя значение.
Код с решением будет завтра.
#задача
🤡8👍1🔥1