Назад к вопросам
Junior — Middle
81
Чем отличается метод от функции, и в чем особенности их использования?
Компании, где спрашивали
Flant
Ответ от нейросети
sobes.tech AI
В Go функция — это независимый блок кода, который можно вызвать по имени и который может принимать параметры и возвращать значения.
Метод — это функция, связанная с определённым типом (например, структурой). Метод объявляется с указанием приёмника (receiver), который определяет, к какому типу он принадлежит.
Особенности использования:
- Метод позволяет работать с данными конкретного типа, используя приёмник внутри тела метода.
- Методы помогают организовать код и реализовать поведение для типов, что приближает Go к объектно-ориентированному стилю.
Пример:
package main
import "fmt"
type Person struct {
Name string
}
// Метод с приёмником типа Person
func (p Person) Greet() {
fmt.Println("Привет, меня зовут", p.Name)
}
// Обычная функция
func Add(a, b int) int {
return a + b
}
func main() {
p := Person{Name: "Иван"}
p.Greet() // вызов метода
fmt.Println(Add(2, 3)) // вызов функции
}