Go tests
7.41K subscribers
283 photos
94 links
По всем вопросам- @haarrp

@itchannels_telegram - 🔥полезные ит-каналы

https://yangx.top/Golang_google - Golang программирование

@golangl - golang chat

@GolangJobsit - golang channel jobs

@golang_jobsgo - go chat jobs
加入频道
👣 Бесплатные курсы по изучению Golang в 2023 году

В этой статье я поделился лучшими бесплатными онлайн-курсами по изучению Golang на таких сайтах, как freeCodecamp, YouTube, Udemy и Coursera .

Читать

@golangtests
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код ?

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
Что выведет код ?

package main

import (
"fmt"
)

func main() {
arr1 := [2]int{2, 3}
arr2 := [...]int{2, 3}
fmt.Println(arr1 == arr2)
}


Ответ

@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
Что выведет код ?

package main

import (
"fmt"
)

func main() {
x := [...]string{1: "xyz", 2: "pqr"}
fmt.Println(x[0], x[1])
}

Ответ

@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
Что выведет код ?


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
📌 Задача палиндром наибольшей длины, полученный с помощью соединений из слов, состоящих из двух букв.

Сложность: Средняя

Условие задачи: дан массив строк, каждый элемент которого состоит из двух букв английского алфавита в нижнем регистре.

Необходимо создать палиндром наибольшей длины путем выбора некоторых элементов из массива строк и компаниовки их в любом порядке. Каждый элемент массива можно использовать не более одного раза.

В ответе надо вернуть длину такого палидрома.


Палиндром - строка, которая одинаково читаются слева направо и справа налево.

Пример:

Ввод:
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 кейс, выполняются его утверждения.

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
Что выведет код ?

package main

import "fmt"

func sum(a, b any) any {
return a + b
}

func main() {
fmt.Println(sum(2, 3))
}


Ответ

@golangtests
Что выведет код ?

package main

import (
"fmt"
)

func main() {
i := -5
j := +5
fmt.Printf("%+d %+d", i, j)
}

Ответ

@golangtests
Что выведет код ?
Anonymous Quiz
27%
+5 +5
64%
-5 +5
2%
-5 -5
7%
0 0
Что выведет код ?

package main

import (
"fmt"
)

func main() {
var i interface{}
if i == nil {
fmt.Println("nil")
return
}
fmt.Println("not nil")
}

Ответ

@golangtests