[ā§Š.⧍] āĻŽā§āĻĨāĻĄ (Method)
āĻāĻ āĻĒāϰā§āϝāĻžā§ā§ āĻāĻŽāϰāĻž āĻĒāϰāĻŋāĻāĻŋāϤ āĻšāĻŦā§ Go āĻŽā§āĻĨāĻĄ āĻāϰ āϏāĻžāĻĨā§āĨ¤ āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§āĻ Go, Object Oriented āĻāύāϏā§āĻĒā§āĻā§āϰ āϏāĻžāĻĨā§ āύāĻŋāĻā§āĻā§ āϏāĻāϝā§āĻā§āϤ āĻāϰā§āĻā§āĨ¤ āĻŽā§āĻĨāĻĄ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻŽāĻžāĻĻā§āϰ āĻ āĻŦāĻļā§āϝāĻ āĻĒāϰāĻŋāώā§āĻāĻžāϰ āϧāĻžāϰāĻŖāĻž āĻĨāĻžāĻāϤ⧠āĻšāĻŦā§āĨ¤
[ā§Š.⧍.ā§§] āĻŽā§āĻĨāĻĄ āĻā§ ?Â
āĻŽā§āĻĨāĻĄ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύ āĻāĻžāĻĄāĻŧāĻž āĻāϰ āĻāĻŋāĻā§āĻ āύāϝāĻŧ, āĻāĻŋāύā§āϤ⧠āĻāĻāĻŋ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ Struct āĻŦāĻž Non-struct āĻāϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻā§āϤāĨ¤ āĻŽā§āĻĨāĻĄāĻā§ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĢāĻžāĻāĻļāύ āĻĨā§āĻā§ āϏāĻžāĻŽāĻžāύā§āϝ āĻāĻŋāύā§āύ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ⧠āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻŽā§āĻĨāĻĄā§ āĻĢāĻžāĻāĻļāύā§āϰ āĻĨā§āĻā§ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻāĻžāĻāĻĒ āĻĨāĻžāĻā§ āϝāĻžÂ func āĻāĻŋāĻā§āĻžāϰā§āĻĄ āĻāĻŦāĻ āĻŽā§āĻĨāĻĄ āύāĻžāĻŽā§āϰ āĻŽāĻžāĻāĻāĻžāύ⧠āĻĨāĻžāĻā§āĨ¤Â āĻāĻ āĻāĻžāĻāĻĒ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻā§ āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻŦāϞāĻž āĻšā§āĨ¤ Go- āϤ⧠āϏāĻžāϧāĻžāϰāĻŖāϤ āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§ OOP āĻāύāϏā§āĻĒā§āĻ āĻāĻŽāĻĒā§āϞāĻŋāĻŽā§āύā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āϝā§āĻāĻžāύ⧠āĻ āύā§āϝ āĻāĻžāώāĻž āϝā§āĻŽāύ āĻĒāĻžāĻāĻĨāύ āĻāĻŦāĻ āĻāĻžāĻāĻž āϤ⧠āĻā§āϞāĻžāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĨāĻžāĻā§āĨ¤ Go- āϤ⧠āϏāĻžāϧāĻžāϰāĻŖāϤ āĻā§āϞāĻžāϏ āύā§āĻ , āϤāĻŦā§ Go- āϤ⧠āĻŽā§āĻĨāĻĄāĻā§ āĻŦāĻŋāĻāĻŋāύā§āύ āϧāϰāĻŖā§āϰ Struct āĻāĻŦāĻ Non-struct āĻāĻžāĻāĻĒā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻā§āϤ āĻāϰ⧠āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
 āĻāĻāύ āĻāĻŽāϰāĻž āĻāĻŋāĻāĻžāĻŦā§ āĻŽā§āĻĨāĻĄ āϞāĻŋāĻāϤ⧠āĻšāϝāĻŧ āϏā§āĻāĻžāϰ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻļāĻŋāĻāĻŦ –
func (receiverName receiverType) MethodName (parameter List)(returnTypes){
method body
}
āĻāĻāĻāĻž āϏāĻŋāĻŽā§āĻĒāϞ āĻŽā§āĻĨāĻĄ āĻĻā§āĻāϤ⧠āĻ āύā§āĻāĻāĻž āĻāϰāĻāĻŽ āĻšāϝāĻŧ āĻ

āĻāĻāĻāĻŋ āĻŽā§āĻĨāĻĄā§āϰ āĻļā§āϰā§āϤ⧠func āĻāĻŋāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāϰāĻĒāϰ⧠āĻĢāĻžāϏā§āĻ āĻŦā§āϰā§āϝāĻžāĻā§āĻ āĻĨāĻžāĻā§ āϝā§āĻāĻžāύ⧠āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻāĻžāĻāĻĒ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāϰāĻĒāϰ āĻŽā§āĻĨāĻĄā§āϰ āύāĻžāĻŽ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻĢāĻžāϏā§āĻ āĻŦā§āϰā§āϝāĻžāĻā§āĻ āĻĨāĻžāĻā§āĨ¤ āĻāϰ āĻĒāϰ⧠āĻŽā§āĻĨāĻĄā§āϰ āĻāϰ āĻŦā§āϞāĻ āĻĨāĻžāĻā§ āϝā§āĻāĻžāύ⧠āĻāĻŽāϰāĻž āĻā§āĻĄ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ āĨ¤ āĻāĻāĻāĻŋ āĻŽā§āĻĨāĻĄā§āϰ āĻŦā§āϞāĻ āĻļā§āϰ⧠āĻāĻŦāĻ āĻļā§āώ āĻšāϝāĻŧ āϏā§āĻā§āύā§āĻĄ āĻŦā§āϰā§āϝāĻžāĻā§āĻ āĻĻāĻŋāϝāĻŧā§ āĨ¤
Â
āĻŦāĻŋāĻļā§āώ āύā§āĻ: āĻāĻŽāϰāĻž āĻāĻžāύāĻŋ āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻĻā§āĻ āϧāϰāĻŖā§āϰ āĻšā§ā§ āĻĨāĻžāĻā§ āĻā§āϝāĻžāϞ⧠āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻāĻŦāĻ āĻĒā§ā§āύā§āĻāĻžāϰ āϰāĻŋāϏāĻŋāĻāĻžāϰāĨ¤ āĻā§āϝāĻžāϞ⧠āϰāĻŋāϏāĻŋāĻāĻžāϰā§āϰ āϏāĻžāĻšāĻžāϝā§āϝ⧠Type āĻāϰ āĻŽāĻžāύā§āϰ āĻāĻāĻāĻŋ āĻāĻĒāĻŋ āĻĒāĻžāĻ āĻžāύ⧠āĻšā§ āϝāĻžāϰ āĻĢāϞ⧠āĻāĻŽāϰāĻž āĻāĻžāĻāϞā§āĻ Type āĻāϰ āĻāϏāϞ āĻŽāĻžāύā§āϰ āĻā§āύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ āύāĻžāĨ¤ āĻāĻāύā§āϝ āϝāĻāύ āĻāϏāϞ āĻŽāĻžāύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻĒā§āϰā§ā§āĻāύ āĻšā§ āϤāĻāύ āĻāĻŽāϰāĻž āĻĒā§ā§āύā§āĻāĻžāϰ āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻŽāĻžāύā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰ⧠āĻĨāĻžāĻāĻŋāĨ¤ āĻāĻžāϰāĻŖ āĻĒā§ā§āύā§āĻāĻžāϰā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ *Type āĻāϰ āĻ ā§āϝāĻžāĻĄā§āϰā§āϏ āĻĒāĻžāĻ āĻžāύ⧠āĻšā§āĨ¤ āϝāĻāύ āĻāĻŽāϰāĻž Type āĻāĻŦāĻ *Type āĻāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻŽā§āĻĨāĻĄ āĻĄāĻŋāĻā§āϞā§ā§āĻžāϰ āĻāϰāĻŦ āϤāĻāύ āĻāĻŽāĻžāĻĻā§āϰ āĻ āĻŦāĻļā§āϝāĻ āύāĻŋāĻā§āϰ āĻŦāĻŋāώā§āĻā§āϞ⧠āĻā§ā§āĻžāϞ āϰāĻžāĻāϤ⧠āĻšāĻŦā§ –Â
- Type āĻ āĻŦāĻļā§āϝāĻ āĻĄāĻŋāĻĢāĻžāĻāύ āĻāϰāϤ⧠āĻšāĻŦā§ āĨ¤
- Type āĻāĻŦāĻ āĻŽā§āĻĨāĻĄ āĻ āĻŦāĻļā§āϝāĻ āĻāĻāĻ āĻĒā§āϝāĻžāĻā§āĻā§ āĻĄāĻŋāĻĢāĻžāĻāύ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
- Type āĻ āĻŦāĻļā§āϝāĻ āĻāύā§āĻāĻžāϰāĻĢā§āϏ āĻāĻžāĻāĻĒ āĻšāĻā§āĻž āϝāĻžāĻŦā§āύāĻžāĨ¤
[ā§Š.⧍.⧍] āĻŽā§āĻĨāĻĄ āĻāϰ āϏāĻžāĻĨā§ Struct āĻāĻžāĻāĻĒ āϰāĻŋāϏāĻŋāĻāĻžāϰā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ
āĻŽā§āĻĨāĻĄ āĻĄāĻŋāĻĢāĻžāĻāύā§āϰ āϏāĻŽā§ āĻāĻŽāϰāĻž Sturct āĻ āĻĨāĻŦāĻž Non-Struct āĻāĻžāĻāĻĒā§āϰ āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋāĨ¤ āĻāĻāύ āĻāĻŽāϰāĻž āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĻā§āĻāĻŦā§ āĻā§āĻāĻžāĻŦā§ āĻŽā§āĻĨāĻĄā§āϰ āϏāĻžāĻĨā§ Struct āĻāĻžāĻāĻĒ āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§āĨ¤
   āĻāĻĻāĻžāĻšāϰāĻŖ –
package main
import "fmt"
type User struct {
Name string
Email string
}
func (u User) userDetails() string {
return fmt.Sprintf("User name is : %s and email is: %s", u.Name, u.Email)
}
func main() {
user1 := User{Name: "John Doe", Email: "johndoe@Golinuxcloud.com"}
fmt.Println(user1.userDetails())
}
// Output:
// User name is : John Doe and email is: johndoe@Golinuxcloud.com
 āĻāĻĒāϰā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§ –
- āĻāĻŽāϰāĻž User Struct āϤā§āϰāĻŋ āĻāϰā§āĻāĻŋ āϝāĻžāϰ Name āĻāĻŦāĻ Email āĻĻā§āĻāĻŋ āĻĢāĻŋāϞā§āĻĄ āϰā§ā§āĻā§āĨ¤Â
- āĻāϰāĻĒāϰ āĻāĻŽāϰāĻž (u User) Struct āϰāĻŋāϏāĻŋāĻāĻžāϰā§āϰ āϏāĻžāĻšāĻžāϝā§āϝ⧠userDetails() āĻŽā§āĻĨāĻĄ āĻāϏā§āϏāĻŋā§ā§āĻ āĻāϰā§āĻāĻŋāĨ¤Â
- āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞ u āĻāϰ āϏāĻžāĻĨā§ āĻĄāĻ āύā§āĻā§āĻļāύā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ Struct āĻāϰ āĻĢāĻŋāϞā§āĻĄ āĻā§āϝāĻžāϞ⧠u.Name āĻāĻŦāĻ u.Email āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤Â
- āϤāĻžāϰāĻĒāϰ main() āĻĢāĻžāĻāĻļāύ⧠User āĻāϰ āĻāĻāĻāĻž āĻāύā§āϏāĻā§āϝāĻžāύā§āϏ user1 āϤā§āϰāĻŋ āĻāϰāĻž āĻšā§ā§āĻā§ āϝāĻžāϰ āϏāĻžāĻšāĻžāϝā§āϝ⧠userDetails() āĻŽā§āĻĨāĻĄāĻā§ āĻāϞ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤Â
Â
[ā§Š.⧍.ā§Š] āĻŽā§āĻĨāĻĄ āĻāϰ āϏāĻžāĻĨā§ Non-Struct āĻāĻžāĻāĻĒ āϰāĻŋāϏāĻŋāĻāĻžāϰā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ
āĻāĻāύ āĻāĻŽāϰāĻž āĻĻā§āĻāĻŦā§ Non-Struct āĻāĻžāĻāĻĒ āϰāĻŋāϏāĻŋāĻāĻžāϰā§āϰ āϏāĻžāĻĨā§ āĻā§āĻāĻžāĻŦā§ āĻŽā§āĻĨāĻĄ āĻĄāĻŋāĻĢāĻžāĻāύ āĻāϰāϤ⧠āĻšā§āĨ¤ āĻāĻŽāϰāĻž [ā§Š.⧍.ā§§] āĻ āϤāĻŋāύāĻāĻŋ āĻĒā§ā§āύā§āĻā§ āĻĻā§āĻā§āĻāĻŋāϞāĻžāĻŽ āĻāĻžāĻāĻĒ āĻāĻŦāĻ āĻŽā§āĻĨāĻĄ āĻāĻāĻ āĻĒā§āϝāĻžāĻā§āĻā§ āĻĄāĻŋāĻā§āϞā§ā§āĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§ āϤāĻž āύāĻž āĻšāϞ⧠āĻāĻŽā§āĻĒāĻžāĻāϞāĻžāϰ āĻāϰāϰ āĻĻāĻŋāĻŦā§āĨ¤Â Â
āύāĻŋāĻŽā§āύā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖāĻāĻŋ āϞāĻā§āώ āĻāϰāĻŋ āĻ
package main
import "fmt"
type myNumber int
func (num myNumber) square() myNumber {
if num == 0 {
return 1
}
return num * num
}
func main() {
num := myNumber(25)
sq := num.square()
fmt.Printf("The square of %d is %d \n", num, sq)
}
// Output : The square of 25 is 625
- āĻāĻŽāϰāĻž myNumber , Non-Struct āĻāĻāĻāĻŋ āĻāĻžāĻāĻĒ āϤā§āϰāĻŋ āĻāϰā§āĻāĻŋ āĨ¤Â
- āĻāϰāĻĒāϰ āĻāĻŽāϰāĻž (num myNumber) Non-Struct āϰāĻŋāϏāĻŋāĻāĻžāϰā§āϰ āϏāĻžāĻšāĻžāϝā§āϝ⧠square() āĻŽā§āĻĨāĻĄ āĻāϏā§āϏāĻŋā§ā§āĻ āĻāϰā§āĻāĻŋ āϝāĻžāϰ āϰāĻŋāĻāĻžāϰā§āύ āĻāĻžāĻāĻĒ myNumberāĨ¤Â
- āϤāĻžāϰāĻĒāϰ main() āĻĢāĻžāĻāĻļāύ⧠myNumber āĻāϰ āĻāĻāĻāĻž āĻāύā§āϏāĻā§āϝāĻžāύā§āϏ num āϤā§āϰāĻŋ āĻāϰāĻž āĻšā§ā§āĻā§ āϝāĻžāϰ āϏāĻžāĻšāĻžāϝā§āϝ⧠square() āĻŽā§āĻĨāĻĄāĻā§ āĻāϞ āĻāϰāĻž āĻšā§ā§āĻā§ āϝā§āĻāĻž sq āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞ⧠āώā§āĻā§āϰ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤
 [3.2.3] āĻŽā§āĻĨāĻĄ āĻāϰ āϏāĻžāĻĨā§ Interface āĻāĻžāĻāĻĒā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ
 Go – āϤ⧠āĻāύā§āĻāĻžāϰāĻĢā§āϏ āĻšāϞ āĻāĻāĻāĻŋ āĻāĻžāĻāĻĒ āϝā§āĻāĻžāύ⧠āĻŦāĻŋāĻāĻŋāύā§āύ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻ āϰāĻŋāĻāĻžāϰā§āύ āĻāĻžāĻāĻĒā§āϰ āĻŽā§āĻĨāĻĄ āϏāĻŋāĻāύā§āĻāĻžāϰ āĻĨāĻžāĻā§āĨ¤ āĻŽā§āĻĨāĻĄāĻā§āϞ⧠āĻāĻŽāĻĒā§āϞāĻŋāĻŽā§āύā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ Struct āĻāĻžāĻāĻĒā§āϰ āϰāĻŋāϏāĻŋāĻāĻžāϰā§āϰ āϏāĻžāĻĨā§ āĻŽā§āĻĨāĻĄ āĻāϏā§āϏāĻŋā§ā§āĻ āĻĨāĻžāĻā§āĨ¤
 āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĻā§āĻāĻž āϝāĻžāĻ –
package main
import "fmt"
type Animal interface {
walk() string
bark() string
}
type Dog struct {
w, b string
}
func (d Dog) walk() string {
return d.w
}
func (d Dog) bark() string {
return d.b
}
func main() {
var a Animal = Dog{"Dog is walking.....!!!", "Dog is barking....!!!"}
fmt.Println("!.....Dog......!")
fmt.Println(a.walk())
fmt.Println(a.bark())
}
// Output :
// !.....Dog......!
// Dog is walking.....!!!
// Dog is barking....!!!
  āĻāĻĒāϰā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§, āĻāĻŽāϰāĻž Animal  āĻāύā§āĻāĻžāϰāĻĢā§āĻ¸Â āϤā§āϰāĻŋ āĻāϰā§āĻāĻŋ āϝāĻžāϰ walk() āĻāĻŦāĻ bark() āύāĻžāĻŽā§ āĻĻā§āĻāĻŋ āĻŽā§āĻĨāĻĄ āϰā§ā§āĻā§ āĨ¤ āĻāϰāĻĒāĻ°Â Animal āĻāύā§āĻāĻžāϰāĻĢā§āϏāĻā§Â āĻāĻŽāĻĒā§āϞāĻŋāĻŽā§āύā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ Dog āĻāĻžāĻāĻĒā§āϰ Struct āϤā§āϰāĻŋ āĻāϰā§āĻāĻŋ āϝāĻžāϰ w āĻ b āύāĻžāĻŽā§ āĻĻā§āĻāĻŋ āĻĢāĻŋāϞā§āĻĄ āĻāĻā§āĨ¤ āĻāϰāĻĒāĻ°Â (d Dog) Struct āϰāĻŋāϏāĻŋāĻāĻžāϰā§āϰ āϏāĻžāĻšāĻžāϝā§āϝ⧠walk() āĻāĻŦāĻ bark() āĻŽā§āĻĨāĻĄāĻā§ āĻāϏā§āϏāĻŋā§ā§āĻ āĻāϰā§āĻāĻŋāĨ¤ āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞ d āĻāϰ āϏāĻžāĻĨā§ āĻĄāĻ āύā§āĻā§āĻļāύā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ Struct āĻāϰ āĻĢāĻŋāϞā§āĻĄ āĻā§āϝāĻžāϞ⧠d.w āĻāĻŦāĻ d.b āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤ āϤāĻžāϰāĻĒāϰ main() āĻĢāĻžāĻāĻļāύ⧠āĻāύā§āϤāĻžāϰāĻĢā§āϏ Animal āĻāĻžāĻāĻĒā§āϰ āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞ a āĻ¤ā§ Â Dog Struct āĻāϏāĻžāĻāύ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤ āĻāϰāĻĒāϰ āĻāύā§āĻāĻžāϰāĻĢā§āϏ āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞā§āϰ āϏāĻžāĻĨā§ a.walk() āĻāĻŦāĻ a.bark() āĻŽā§āĻĨāĻĄ āĻāϞ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤
[ā§Š.⧍.ā§Ē] āĻŽā§āĻĨāĻĄ āĻāϰ āϏāĻžāĻĨā§ Pointer āĻāĻŦāĻ value āϰāĻŋāϏāĻŋāĻāĻžāϰā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ
Go āĻŽā§āĻĨāĻĄ āĻĒā§ā§āύā§āĻāĻžāϰ āĻāĻŦāĻ āĻā§āϝāĻžāϞ⧠āĻāĻā§ āϰāĻŋāϏāĻŋāĻāĻžāϰā§āĻ āĻāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ Go āϤ⧠āĻĒā§ā§āύā§āĻāĻžāϰ āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞ āϏā§āĻ āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞā§āϰ āĻŽā§āĻŽā§āϰāĻŋ āĻ ā§āϝāĻžāĻĄā§āϰā§āϏ āώā§āĻā§āϰ āĻāϰ⧠āϰāĻžāĻā§ āϤāĻžāϰāĻĒāϰ āϏā§āĻ āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞ āύāĻŋā§ā§ āĻāĻžāĻ āĻāϰā§āĨ¤Â
Go āϤ⧠āϝāĻāύ āĻĒāĻžāϏ āĻŦāĻžāĻ āĻā§āϝāĻžāϞ⧠āĻĒāĻžāĻ āĻžāύ⧠āĻšā§ āĻāϰ āĻ āϰā§āĻĨ āĻĻāĻžāĻā§āĻžā§, āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞā§āϰ āĻāĻāĻāĻž āĻāĻĒāĻŋ āĻĒāĻžāϏ āĻāϰāĻž āĻšāĻā§āĻā§āĨ¤ āϝāĻĻāĻŋ āĻāĻŽāϰāĻžÂ āϏā§āĻ āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞā§āϰ āĻŽāĻžāύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻŋ āϤāĻžāĻšāϞ⧠āϝā§āĻāĻžāύ āĻĨā§āĻā§ āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞāĻāĻŋ āĻĒāĻžāϏ āĻāϰāĻž āĻšā§ā§āĻā§, āϤāĻžāϰ āĻŽāĻžāύā§āϰ āĻā§āύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻšāĻŦā§ āύāĻžāĨ¤Â
āϝāĻĻāĻŋ āĻĒāĻžāϏ āĻāϰāĻž āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞā§āϰ āĻŽāĻžāύā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ āϝ⧠āĻāĻžā§āĻāĻž āĻĨā§āĻā§ āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞāĻāĻŋ āĻĒāĻžāϏ āĻāϰāĻž āĻšā§ā§āĻā§, āϏā§āĻāĻžāύā§āĻ āĻŽāĻžāύ āĻāĻĒāĻĄā§āĻ āĻāϰ⧠āĻĻāĻŋāϤ⧠āĻāĻžāĻ, āϤāĻžāĻšāϞ⧠āĻĒā§ā§āύā§āĻāĻžāϰ āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻžāϰāύ āĻĒā§ā§āύā§āĻāĻžāϰ āϏā§āĻ āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞā§āϰ āĻāĻĒāĻŋ āĻĒāĻžāϏ āĻāϰ⧠āύāĻž āĻŦāϰāĻ āϏ⧠āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞā§āϰ āĻŽā§āĻŽā§āϰāĻŋ āĻ ā§āϝāĻžāĻĄā§āϰā§āϏ āĻĒāĻžāϏ āĻāϰā§, āϤāĻžāĻ āϏā§āĻ āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞā§āϰ āĻŽāĻžāύā§āϰ āĻā§āύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϞ⧠āĻāĻā§āϤ āĻ ā§āϝāĻžāĻĄā§āϰā§āϏā§āĻ āĻŽāĻžāύā§āϰāĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻšā§ā§ āϝāĻžā§āĨ¤
[ā§Š.⧍.⧍] āĻāϰ āĻāĻĻāĻžāĻšāϰāĻŖāĻāĻž āĻāĻŦāĻžāϰāĻ āĻĻā§āĻāĻž āϝāĻžāĻ –Â
package main
import "fmt"
type User struct {
Name string
Email string
}
func (u User) userDetails() string {
return fmt.Sprintf("User name is :%s and email is: %s", u.Name, u.Email)
}
func (u *User) changeDetails(newName, newEmail string) {
u.Name = newName
u.Email = newEmail
}
func main() {
user1 := User{Name: "John Doe", Email: "johndoe@Golinuxcloud.com"}
fmt.Println(user1.userDetails())
user1.changeDetails("Mary Doe", "marydoe@Golinuxcloud.com")
fmt.Println(user1.userDetails())
}
// Output :
// User name is :John Doe and email is: johndoe@Golinuxcloud.com
// User name is :Mary Doe and email is: marydoe@Golinuxcloud.com
āĻāĻĒāϰā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§, [ā§Š.⧍.⧍] āĻāϰ āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āϏāĻžāĻĨā§ āĻļā§āϧ⧠pointer āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻāĻžāĻāĻĒā§āϰ āϏāĻžāĻĨā§ changeDetails() āĻŽā§āĻĨāĻĄ āĻāĻĄ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤ āϝāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ user āĻāϰ āĻĄāĻŋāĻā§āĻāϞāϏ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤