Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
391 - Telegram Web
Telegram Web
Chisel

Chisel - это быстрый TCP/UDP-туннель на Go, для пеередачи HTTP запросов, защищенный с помощью SSH. Chisel в основном полезен для прохождения через брандмауэры, но может быть использован и для обеспечения безопасной конечной точки входа в сеть.

$ go install github.com/jpillora/chisel@latest

💎 Чат: ссылка

Github
Full-Stack Web Development with Go

Автор:
Nanik Tolaram
Год издания: 2023

#go #en

Скачать книгу
Что выведет код ?

package main

import (
"fmt"
)

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

Ответ
Go Optimizations 101

Автор:
Tapir Liu
Год издания: 2022

#go #en

Скачать книгу
Что выведет код?

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

Скачать книгу
Что выведет код ?

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) // что выведет?
}


Ответ
How To Code in Go

Автор:
Mark Bates, Cory LaNou, Tim Raymond
Год издания: 2020

#go #en

Скачать книгу
Что выведет код?

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
}

Ответ
Learning Go Programming

Автор:
Vladimir Vivien
Год издания: 2016

#go #en

Скачать книгу
Что выведет код ?

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!")
}
}
}

Ответ
Introducing Go

Автор:
Caleb Doxsey
Год издания: 2016

#go #en

Скачать книгу
Что выведет код?

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))
}

Ответ
An Introduction to Go

Автор:
Caleb Doxsey
Год издания: 2012

#go #english

Скачать книгу
Network Programming with Go

Автор:
Adam Woodbeck
Год издания: 2021

#go #en

Скачать книгу
👣 go-tunnel

Утилита на Golang для безопасного открытия портов HTTP/Websocket

▪️ Github
Generic Data Structures and
Algorithms in Go

Автор:
Richard Wiener
Год издания: 2022

#go #en

Скачать книгу
🔴 Dot: элегантное решение для манипуляции данными в Golang

Мы разработали удивительный новый пакет для Golang на GitHub, который позволяет легко вносить изменения в структуры с использованием пути к полям, разделенных точками: Field1.Field2.Field3.

➡️ Идея возникла, когда нам понадобилось обновить данные во множестве структур для последующей передачи в API. Мы знали точные пути ко всем полям, но не хотели делать это вручную. Именно тогда родился Dot!

Если вы поддерживаете open-source, мы будем благодарны за вашу ⭐️ нашему репозиторию на GitHub. Вместе мы делаем разработку в Go еще лучше!

🌍 Github: https://github.com/mowshon/dot (очень подробная документация - на английском) 🇬🇧

📚 Статья на русском языке: https://golangify.com/dot
Вопрос с собеседования. Как устроен слайс и чем он отличается от массива?

Ответ через пару часов завтра.

#собеседование
Ответ на «Как устроен слайс и чем он отличается от массива?»

Срезы (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"]
2025/07/02 16:01:47
Back to Top
HTML Embed Code: