Chisel
Chisel - это быстрый TCP/UDP-туннель на Go, для пеередачи HTTP запросов, защищенный с помощью SSH. Chisel в основном полезен для прохождения через брандмауэры, но может быть использован и для обеспечения безопасной конечной точки входа в сеть.
Chisel - это быстрый TCP/UDP-туннель на Go, для пеередачи HTTP запросов, защищенный с помощью SSH. Chisel в основном полезен для прохождения через брандмауэры, но может быть использован и для обеспечения безопасной конечной точки входа в сеть.
$ go install github.com/jpillora/chisel@latest
💎 Чат: ссылка
GithubЧто выведет код ?
package main
import (
"fmt"
)
func main() {
i := -5
j := +5
fmt.Printf("%+d %+d", i, j)
}
ОтветЧто выведет код?
package main
import "fmt"
func main() {
for t := 0; t < 10; t++ {
for i := 0; i < 10; i++ {
fmt.Print("*")
}
fmt.Println()
}
}
ОтветThe Ultimate Guide
To Building Database
Driven Apps with Go
Автор: Baron Schwartz
Год издания: 2019
#go #en
Скачать книгу
To Building Database
Driven Apps with Go
Автор: Baron Schwartz
Год издания: 2019
#go #en
Скачать книгу
Что выведет код ?
Ответ
package main
import "fmt"
func foo(a []int) {
a = append(a, 7)
a[1] = 7
}
func bar(a *[]int) {
*a = append(*a, 7)
}
func main() {
a := []int{1, 2, 3, 4, 5, 6}
fmt.Printf("a[1]=%d\n", a[1])
b := a[1:3]
b[0] = 10
fmt.Printf("1. a[1]=%d\n", a[1]) // что выведет?
b = append(b, a...)
b[0] = 100
fmt.Printf("2. a[1]=%d\n", a[1]) // что выведет?
foo(a)
fmt.Printf("3. a[1]=%d\n", a[1]) // что выведет?
bar(&a)
fmt.Printf("4. a=%v\n", a) // что выведет?
}
Ответ
go.dev
Go Playground - The Go Programming Language
Что выведет код?
package main
import (
"errors"
"fmt"
)
var ErrNotFound = errors.New("Resource was not found")
func main() {
err := raise()
if err == ErrNotFound {
fmt.Println("impossible")
return
}
if err != nil {
fmt.Println("unexpected error")
return
}
}
func raise() error {
return ErrNotFound
}
ОтветЧто выведет код ?
package main
import "fmt"
func main() {
animals := []string{"bear", "bear", "rabbit", "wolf"}
for _, animal := range animals {
switch animal {
case "rabbit":
fmt.Println(animal, "is so weak!")
fallthrough
case "bear", "wolf":
fmt.Println(animal, "is so strong!")
}
}
}
ОтветЧто выведет код?
package main
func f(n int) (r int) {
defer func() {
r += n
recover()
}()
var f func()
defer f()
f = func() {
r += 2
}
return n + 1
}
func main() {
println(f(3))
}
Ответgo.dev
Go Playground - The Go Programming Language
Generic Data Structures and
Algorithms in Go
Автор: Richard Wiener
Год издания: 2022
#go #en
Скачать книгу
Algorithms in Go
Автор: Richard Wiener
Год издания: 2022
#go #en
Скачать книгу
🔴 Dot: элегантное решение для манипуляции данными в Golang
Мы разработали удивительный новый пакет для Golang на GitHub, который позволяет легко вносить изменения в структуры с использованием пути к полям, разделенных точками:
➡️ Идея возникла, когда нам понадобилось обновить данные во множестве структур для последующей передачи в API. Мы знали точные пути ко всем полям, но не хотели делать это вручную. Именно тогда родился Dot!
Если вы поддерживаете open-source, мы будем благодарны за вашу ⭐️ нашему репозиторию на GitHub. Вместе мы делаем разработку в Go еще лучше!
🌍 Github: https://github.com/mowshon/dot (очень подробная документация - на английском) 🇬🇧
📚 Статья на русском языке: https://golangify.com/dot
Мы разработали удивительный новый пакет для Golang на GitHub, который позволяет легко вносить изменения в структуры с использованием пути к полям, разделенных точками:
Field1.Field2.Field3
. ➡️ Идея возникла, когда нам понадобилось обновить данные во множестве структур для последующей передачи в API. Мы знали точные пути ко всем полям, но не хотели делать это вручную. Именно тогда родился Dot!
Если вы поддерживаете open-source, мы будем благодарны за вашу ⭐️ нашему репозиторию на GitHub. Вместе мы делаем разработку в Go еще лучше!
🌍 Github: https://github.com/mowshon/dot (очень подробная документация - на английском) 🇬🇧
📚 Статья на русском языке: https://golangify.com/dot
Вопрос с собеседования. Как устроен слайс и чем он отличается от массива?
Ответчерез пару часов завтра.
#собеседование
Ответ
#собеседование
Ответ на «Как устроен слайс и чем он отличается от массива?»
Срезы (
Также в Go имеется оператор среза : , который позволяет создавать новый срез и содержит указанную последовательность от и до:
Срезы (
slice
) в отличие от массивов могут менять свою длину. То есть можно добавлять новые элементы, или удалять уже существующие.Также в Go имеется оператор среза : , который позволяет создавать новый срез и содержит указанную последовательность от и до:
// исходный массив
initialUsers := [8]string{"Bob", "Alice", "Kate", "Sam", "Tom",
"Paul", "Mike", "Robert"}
users1 := initialUsers[2:6] // с 3-го по 6-й
users2 := initialUsers[:4] // с 1-го по 4-й
users3 := initialUsers[3:] // с 4-го до конца
fmt.Println(users1) //["Kate", "Sam", "Tom", "Paul"]
fmt.Println(users2) //["Bob", "Alice", "Kate", "Sam"]
fmt.Println(users3) //["Sam", "Tom", "Paul", "Mike", "Robert"]