Когда вы компилируете исходный код в бинарный файл, все данные, включая строки, токены, конфигурации,
Хотя бинарный код
Например, инструменты вроде
Так что
На практике, токены или пароли должны быть хранены в защищённых местах, например:
• В
• В защищённых хранилищах
• Шифрованных
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
Базовый пример:
package main
import (
"fmt"
"net/http"
)
func helloHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
}
func main() {
http.HandleFunc("/hello", helloHandler)
http.ListenAndServe(":8080", nil)
}
fmt
net/http
helloHandler
"Hello, World!"
.http.HandleFunc
"/hello"
http.ListenAndServe(":8080", nil)
8080
http.FileServer
:package main
import "net/http"
func main() {
port := ":8080"
handler := http.FileServer(http.Dir("."))
http.ListenAndServe(port, handler)
}
Аналог
python -m http.server
— Please open Telegram to view this post
VIEW IN TELEGRAM
😁4❤1
Работа со строками в Go
rune
rune
— это int32
, предназначенный для При переборе строки с помощью конструкции
for range
, rune
.Примеры:
•
var r rune = 'A'
•
s := "Привет"
runes := []rune(s)
•
for _, r := range "Привет" {
fmt.Printf("%c ", r)
}
// Вывод: П р и в е т
•
runes := []rune{'П', 'р', 'и', 'в', 'е', 'т'}
s := string(runes) // "Привет"
•
r := 'A'
code := int32(r) // 65
•
s := "Привет"
length := utf8.RuneCountInString(s) // 6
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1
Функции, которые могут завершиться с ошибкой, возвращают её как отдельное значение наряду с результатом.
val, err := someFunction()
if err != nil {
// обработка ошибки
}
errors
errors.Is
errors.As
fmt.Errorf(... %w ...)
func DoSomething() error {
if err := someOperation(); err != nil {
return fmt.Errorf("someOperation failed: %w", err)
}
return nil
}
finally
defer
Panic
и recover
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1