Sobes.tech
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)) // ֆունկցիայի կանչում
}