Что выведет код?
Anonymous Quiz
5%
00
38%
02
9%
11
16%
12
22%
Ошибка компиляции
9%
Посмотреть результаты
В этой статье я поделился лучшими бесплатными онлайн-курсами по изучению Golang на таких сайтах, как freeCodecamp, YouTube, Udemy и Coursera .
▪ Читать
@golangtests
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код ?
Ответ
@golangtests
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),
)
}
}
Ответ
@golangtests
Что выведет код ?
Ответ
@golangtests
package main
import (
"fmt"
)
func main() {
arr1 := [2]int{2, 3}
arr2 := [...]int{2, 3}
fmt.Println(arr1 == arr2)
}
Ответ
@golangtests
Что выведет код?
Anonymous Quiz
21%
0
19%
1
17%
2
3%
3
22%
Ошибка компиляции
18%
Посмотреть результаты
Что выведет код ?
Ответ
@golangtests
package main
import (
"fmt"
)
func main() {
x := 3
y := &x
fmt.Print(*y)
*y = 4
fmt.Println(x)
}
Ответ
@golangtests
🔥 Подборка полезных папок с каналами для датасаентисов
Папки, где вы найдете каналы с разбором лучших практик написания кода на Python и Golang до каналов по машинному обучению и нейросетям (папки работают на последних версиях тг).
https://yangx.top/addlist/MUtJEeJSxeY2YTFi - Golang
https://yangx.top/addlist/2Ls-snqEeytkMDgy - Машинное обучение
https://yangx.top/addlist/8vDUwYRGujRmZjFi - Python
Папки, где вы найдете каналы с разбором лучших практик написания кода на Python и Golang до каналов по машинному обучению и нейросетям (папки работают на последних версиях тг).
https://yangx.top/addlist/MUtJEeJSxeY2YTFi - Golang
https://yangx.top/addlist/2Ls-snqEeytkMDgy - Машинное обучение
https://yangx.top/addlist/8vDUwYRGujRmZjFi - Python
Что выведет код ?
Ответ
@golangtests
package main
import (
"fmt"
)
func main() {
x := [...]string{1: "xyz", 2: "pqr"}
fmt.Println(x[0], x[1])
}
Ответ
@golangtests
Что выведет код ?
Ответ
@golangtests
package main
import "fmt"
type Number interface {
int
}
func sum[T Number](a, b T) T {
return a + b
}
func main() {
fmt.Println(sum(2, 3))
}
Ответ
@golangtests
Что выведет код ?
Ответ
@golangtests
package main
import (
"fmt"
)
func printChannel(ch chan int) {
for {
select {
case num := <-ch:
fmt.Printf("%d ", num)
}
}
}
func main() {
ch := make(chan int)
go printChannel(ch)
for i := 0; i < 5; i++ {
ch <- i
}
}
Ответ
@golangtests
📌 Задача палиндром наибольшей длины, полученный с помощью соединений из слов, состоящих из двух букв.
Сложность: Средняя
Условие задачи: дан массив строк, каждый элемент которого состоит из двух букв английского алфавита в нижнем регистре.
Необходимо создать палиндром наибольшей длины путем выбора некоторых элементов из массива строк и компаниовки их в любом порядке. Каждый элемент массива можно использовать не более одного раза.
В ответе надо вернуть длину такого палидрома.
Палиндром - строка, которая одинаково читаются слева направо и справа налево.
Пример:
Ввод:
Вывод: 6
Объяснение: lc" + "gg" + "cl" = "lcggcl" или же "clgglc", но оба имеют максимальную длину 6.
Ввод:
Объяснение: "ty" + "lc" + "cl" + "yt" = "tylcclyt" или "lcyttycl"
Ввод:
Вывод: 2
Решение
Пишите свое решение в комментариях👇
@golangtests
Сложность: Средняя
Условие задачи: дан массив строк, каждый элемент которого состоит из двух букв английского алфавита в нижнем регистре.
Необходимо создать палиндром наибольшей длины путем выбора некоторых элементов из массива строк и компаниовки их в любом порядке. Каждый элемент массива можно использовать не более одного раза.
В ответе надо вернуть длину такого палидрома.
Палиндром - строка, которая одинаково читаются слева направо и справа налево.
Пример:
Ввод:
words = ["lc","cl","gg"]
Вывод: 6
Объяснение: lc" + "gg" + "cl" = "lcggcl" или же "clgglc", но оба имеют максимальную длину 6.
Ввод:
words = ["ab","ty","yt","lc","cl","ab"]
Вывод: 8 Объяснение: "ty" + "lc" + "cl" + "yt" = "tylcclyt" или "lcyttycl"
Ввод:
words = ["cc","ll","xx"]
Вывод: 2
Решение
Пишите свое решение в комментариях👇
@golangtests
Forwarded from Golang news
📌 Уроки Golang с нуля /#13 - Оператор Switch.
Вышел Новый урок из нашего курса, в нем мы поговорим о Операторе Switch в Go.
Оператор switch обычно используется для описания действий, выполняемых программой в тех случаях, когда переменной назначаются определенные значения. Следующий пример показывает, как в подобной ситуации можно использовать операторы if:
Пять паттернов использования операторов switch
Базовый switch с default кейсом
▪Оператор switch запускает первый case (кейс), равный выражению условия.
▪Кейсы оцениваются сверху вниз, останавливаясь, когда кейс подходит.
▪Если ни один кейс не совпадает и есть default кейс, выполняются его утверждения.
В отличие от C и Java, выражения case не обязательно должны быть константами.
Без выражения условия
Switch без условия аналогичен switch true.
Кейс - список
В Go в качестве кейса можно использовать список значений - если выражение условия совпадает с одним из элементов списка, тогда кейс считается совпавшим:
Fallthrough (проваливание в следующий кейс)
Оператор fallthrough передает управление следующему кейсу.
Он может использоваться только как заключительное утверждение в выражениях кейса.
Вывод:
Оператор break завершает выполнение самого внутреннего оператора for, switch или select.
Если вам нужно выйти из окружающего цикла, а не из switch, вы можете поместить метку в цикл и перейти к этой метке. Следующий пример показывает оба варианта использования.
На символе a выполняется default кейс. На пробеле оператор break производит выход из switch. Далее на символе b выполняется default кейс. Далее на символе новой строки (newline - \n) происходит выход к метке Loop и выход из for range цикла.
Порядок исполнения
Сначала выражение switch оценивается один раз.
Затем case выражения оцениваются слева направо и сверху вниз:
первое, равное выражению switch, запускает выполнение операторов соответствующего case,
другие case пропущены.
Вывод:
🎞 Смотреть
Gonews
Вышел Новый урок из нашего курса, в нем мы поговорим о Операторе Switch в Go.
Оператор switch обычно используется для описания действий, выполняемых программой в тех случаях, когда переменной назначаются определенные значения. Следующий пример показывает, как в подобной ситуации можно использовать операторы if:
Пять паттернов использования операторов switch
Базовый switch с default кейсом
▪Оператор switch запускает первый case (кейс), равный выражению условия.
▪Кейсы оцениваются сверху вниз, останавливаясь, когда кейс подходит.
▪Если ни один кейс не совпадает и есть default кейс, выполняются его утверждения.
switch time.Now().Weekday() {
case time.Saturday:
fmt.Println("Сегодня суббота.")
case time.Sunday:
fmt.Println("Сегодня воскресенье.")
default:
fmt.Println("Сегодня будничный день.")
}
В отличие от C и Java, выражения case не обязательно должны быть константами.
Без выражения условия
Switch без условия аналогичен switch true.
// пропущенное выражение условия означает "true"
switch hour := time.Now().Hour(); {
case hour < 12:
fmt.Println("Доброе утро!")
case hour < 17:
fmt.Println("Добрый день!")
default:
fmt.Println("Добрый вечер!")
}
Кейс - список
В Go в качестве кейса можно использовать список значений - если выражение условия совпадает с одним из элементов списка, тогда кейс считается совпавшим:
func WhiteSpace(c rune) bool {
switch c {
case ' ', '\t', '\n', '\f', '\r':
return true
}
return false
}
Fallthrough (проваливание в следующий кейс)
Оператор fallthrough передает управление следующему кейсу.
Он может использоваться только как заключительное утверждение в выражениях кейса.
switch 2 {
case 1:
fmt.Println("1")
fallthrough
case 2:
fmt.Println("2")
fallthrough
case 3:
fmt.Println("3")
}
Вывод:
2
3
Выход с break
Оператор break завершает выполнение самого внутреннего оператора for, switch или select.
Если вам нужно выйти из окружающего цикла, а не из switch, вы можете поместить метку в цикл и перейти к этой метке. Следующий пример показывает оба варианта использования.
Loop:
for _, ch := range "a b\nc" {
switch ch {
case ' ': // пропускаем пробел
break
case '\n': // break на newline символе
break Loop
default:
fmt.Printf("%c\n", ch)
}
}
Вывод:
a
b
На символе a выполняется default кейс. На пробеле оператор break производит выход из switch. Далее на символе b выполняется default кейс. Далее на символе новой строки (newline - \n) происходит выход к метке Loop и выход из for range цикла.
Порядок исполнения
Сначала выражение switch оценивается один раз.
Затем case выражения оцениваются слева направо и сверху вниз:
первое, равное выражению switch, запускает выполнение операторов соответствующего case,
другие case пропущены.
// Foo печатает и возвращает n.
func Foo(n int) int {
fmt.Println(n)
return n
}
func main() {
switch Foo(2) {
case Foo(1), Foo(2), Foo(3):
fmt.Println("Первый case")
fallthrough
case Foo(4):
fmt.Println("Второй case")
}
}
Вывод:
2
1
2
Первый case
Второй case
Gonews
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код ?
Ответ
@golangtests
package main
import "fmt"
func sum(a, b any) any {
return a + b
}
func main() {
fmt.Println(sum(2, 3))
}
Ответ
@golangtests
Что выведет код ?
Anonymous Quiz
3%
1.5
91%
invalid operation: operator + not defined on a (variable of type any)
3%
0
3%
Ничего
Что выведет код ?
▪ Ответ
@golangtests
package main
import (
"fmt"
)
func main() {
i := -5
j := +5
fmt.Printf("%+d %+d", i, j)
}
▪ Ответ
@golangtests
Что выведет код ?
▪ Ответ
@golangtests
package main
import (
"fmt"
)
func main() {
var i interface{}
if i == nil {
fmt.Println("nil")
return
}
fmt.Println("not nil")
}
▪ Ответ
@golangtests