Junior — Middle
Чӣ фарқият байни усул ва функсия вуҷуд дорад ва хусусиятҳои истифодаи онҳо чӣ гуна мебошанд؟
sobes.tech AI
Ҷавоб аз 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: "Ivan"}
p.Greet() // даъвати метод
fmt.Println(Add(2, 3)) // даъвати функсия
}