😁15👍4
🔥3🤮2👏1
🤔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