package main
import "fmt"
func main() {
x := 10
fmt.Println("Hello, World!")
}
Компилятор выдаст ошибку:
• Однако, если вы присваиваете возвращаемое значение переменной, но не используете эту переменную, компилятор сообщит о проблеме.
package main
import "errors"
func doSomething() (int, error) {
return 42, errors.New("an error occurred")
}
func main() {
doSomething() // Это допустимо
result, err := doSomething() //
}
Это вызовет ошибку, так как
result
и err
не используются• Когда вы импортируете пакет,
package main
import "math"
func main() {
// Ничего не делаем
}
Компилятор выдаст ошибку
❕Исключения
• Это правило не касается
package main
import "fmt"
var globalVar int
func greet(name string, age int) {
fmt.Println("Hello,", name)
}
func main() {
greet("Alice", 25)
fmt.Println("Hello, World!")
}
Глобальная переменная
globalVar
не используется,Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Обратный индекс — это
Обратный индекс часто используется в
Пример структуры данных для обратного индекса в Go:
package main
import "fmt"
type InvertedIndex map[string][]int
func addToIndex(index InvertedIndex, term string, docID int) {
index[term] = append(index[term], docID)
}
func main() {
index := make(InvertedIndex)
// Добавление в индекс
addToIndex(index, "hello", 1)
addToIndex(index, "world", 1)
addToIndex(index, "go", 2)
// Печать результата
fmt.Println(index)
}
В этом примере создается обратный индекс, где слово «hello» встречается в документе 1, «world» — в документе 1, а «go» — в документе 2.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
Оцените их по шкале 🔥,❤️,👍,😢, 🥱,
где 🔥 — это супер, а 🥱 — это скучно.
Также приветствуется фидбек в комментах.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥13🥱8❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Добейте 7 бустов, плиз, иначе вопросов с собесов не будет 🚬
Please open Telegram to view this post
VIEW IN TELEGRAM
😢12😁5
Декоратор — это способ
Такой подход часто используют для
Простой пример: логирование вызова метода
type Handler interface {
Handle(msg string) string
}
type SimpleHandler struct{}
func (h SimpleHandler) Handle(msg string) string {
return "Handled: " + msg
}
Теперь сделаем обёртку:
type LoggingHandler struct {
next Handler
}
func (l LoggingHandler) Handle(msg string) string {
fmt.Println("Запрос:", msg)
result := l.next.Handle(msg)
fmt.Println("Ответ:", result)
return result
}
Использование:
func main() {
base := SimpleHandler{}
withLog := LoggingHandler{next: base}
fmt.Println(withLog.Handle("тест"))
}
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤6🔥3👍1
Существует правило, по которому код не скомпилируется,
package main
import "fmt"
func main() {
x := 10
fmt.Println("Hello, World!")
}
Компилятор выдаст ошибку:
x declared but not used
Однако если значения
package main
import "errors"
func doSomething() (int, error) {
return 42, errors.New("an error occurred")
}
func main() {
doSomething() // Это допустимо
result, err := doSomething() // Ошибка, так как result и err не используются
}
"math" imported and not used
package main
import "math" // Ошибка, импорт не используется
func main() {
// Ничего не делаем
}
❕Правило
package main
import "fmt"
var globalVar int // Глобальная переменная, которая не используется
func greet(name string, age int) { // Параметры функции также могут не использоваться
fmt.Println("Hello,", name)
}
func main() {
greet("Alice", 25) // Параметры функции 'name' и 'age' не используются
fmt.Println("Hello, World!")
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👾5👍3🥱1