[ā§Š.ā§§] āϏā§āĻā§āϰāĻžāĻā§āĻāĻāĻžāϰ āĻŦāĻž āϏā§āĻā§āϰāĻžāĻā§āĻāϏ (Structure or Structs)
āĻŦā§āĻāĻā§āϝāĻžāĻŽā§āĻĒā§āϰ āĻāĻ āĻĒāϰā§āϝāĻžā§ā§ āĻāĻŽāϰāĻž āĻĒāϰāĻŋāĻāĻŋāϤ āĻšāĻŦā§ Go Struct āĻāϰ āϏāĻžāĻĨā§āĨ¤ āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϝā§āĻāĻžāĻŦā§ Go, Object Oriented āĻāύāϏā§āĻĒā§āĻā§āϰ āϏāĻžāĻĨā§ āύāĻŋāĻā§āĻā§ āϏāĻāĻļā§āϞāĻŋāώā§āĻ āĻāϰā§āĻā§, āϏā§āĻāĻžāĻŦā§āĻ Struct āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻ āύā§āϝāĻžāύā§āϝ Object Oriented Programming Language āĻāϰ āĻāύāĻā§āύāĻļāύā§āϰ āĻŦāĻžāĻāϰ⧠āĻāĻāĻāĻž āĻāϞāĻžāĻĻāĻž āϏā§āĻŦāϰā§āĻĒ āϤā§āϰāĻŋ āĻāϰ⧠āύāĻŋā§ā§āĻā§āĨ¤ Go āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϝā§āĻā§āύ⧠āĻĒāϰāĻŋāϏāϰ⧠āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ Struct āϏāĻŽā§āĻĒāϰā§āĻā§ āĻĒāϰāĻŋāώā§āĻāĻžāϰ āϧāĻžāϰāĻŖāĻž āĻĨāĻžāĻāĻžāĻāĻž āĻāĻāĻāĻž āĻāĻŦāĻļā§āϝāĻ āĻŦā§āϝāĻžāĻĒāĻžāϰāĨ¤Â
[ā§Š.ā§§.ā§§] Struct āĻā§ ?
Struct āĻšāϞ⧠āĻāĻāĻāĻžāϰā§āϰ āύāĻŋāĻ āĻĒā§āϰā§ā§āĻāύ⧠āĻŦāĻžāύāĻŋā§ā§ āύā§ā§āĻž āĻāĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽ āĻĄāĻžāĻāĻž āĻāĻžāĻāĻĒ āϝā§āĻāĻžāύ⧠āĻāĻŋāύā§āύ āĻāĻŋāύā§āύ āĻĄāĻžāĻāĻž āĻāĻžāĻāĻĒāĻā§ āĻāĻāĻāĻŋ āĻāύāĻāĻŋāĻāĻŋāϰ āĻā§āϤāϰ⧠āĻāĻāϤā§āϰ āĻāϰāĻž āϝāĻžā§āĨ¤ āĻŦā§āϝāĻžāĻĒāĻžāϰāĻāĻž āĻ āύā§āĻāĻāĻž āĻāĻŽāύ āϝā§, āĻāĻŽāĻžāĻĻā§āϰ āĻŦāĻžāϏā§āϤāĻŦ āĻāĻāϤā§āϰ āϝā§āĻā§āύ⧠āĻŦāϏā§āϤā§, āϝāĻžāϰ āύāĻŋāĻā§āϰ āĻāĻŋāĻā§ āĻĒā§āϰā§āĻĒāĻžāϰā§āĻāĻŋ āĻāĻā§, āϤāĻž āĻāĻ Struct āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻž āϝāĻžāĻŦā§āĨ¤ āĻ āϤāĻāĻŦ āĻāĻŽāϰāĻž āĻŦāϞāϤ⧠āĻĒāĻžāϰāĻŋ āϝā§, Struct āĻšāϞ⧠āĻāĻŋāĻā§āĻāĻžÂ Object Oriented programming āĻāϰ Class āĻāύāϏā§āĻĒā§āĻā§āϰ āĻŽāϤā§āĻ āϝāĻž Class āĻāϰ āϤā§āϞāύāĻžā§ āĻ āύā§āĻ āĻĻā§āϰā§āϤ āĻ āĻāĻžāϰā§āϝāĻāϰāĨ¤ āĻĒāϰāĻŦāϰā§āϤā§āϤ⧠āϝāĻāύ āĻāĻŽāϰāĻž āĻŽā§āĻĨāĻĄ āύāĻŋā§ā§ āĻāϞā§āĻāύāĻž āĻāϰāĻŦ āϤāĻāύ āĻāĻ āĻŦā§āϝāĻžāĻĒāĻžāϰ⧠āĻāϰ⧠āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻāĻžāύāϤ⧠āĻĒāĻžāϰāĻŦāĨ¤ āĻāĻĒāĻžāϤāϤ āĻāĻŽāϰāĻž Struct āĻāϰ āĻāĻ āύ āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧠āĻĢā§āĻāĻžāϏ āĻāϰāĻŋâĻ
[ā§Š.ā§§.⧍] Struct āĻāϰ āĻāĻ āύ
āĻāĻāĻāĻŋ Struct āĻĄāĻŋāĻĢāĻžāĻāύ āĻŦāĻž āĻāĻ āύ āĻāϰāĻž āĻšā§ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ –
type StructName struct {
Field1 datatype
Field2 datatype
//................
}
āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ āĻāĻāĻāĻŋ Player Struct āĻĄāĻŋāĻĢāĻžāĻāύ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰ⧠āĻāĻāĻžāĻŦā§Â :
type Player struct {
name string
age int
city string
state string
}
āĻāĻāĻžāύ⧠type āĻāĻŦāĻ struct āĻšāϞ āĻĻā§āĻāĻāĻŋ keywordāĨ¤ Player āĻšāϞ Struct āĻāϰ āύāĻžāĻŽāĨ¤ name, age, city, state āĻšāϞ Struct āĻāϰ āĻĢāĻŋāϞā§āĻĄ āĻŦāĻž āĻĒā§āϰā§āĻĒāĻžāϰā§āĻāĻŋ āĻāĻŦāĻ int, string āĻšāϞ āĻĢāĻŋāϞā§āĻĄā§āϰ āĻĄāĻžāĻāĻž āĻāĻžāĻāĻĒāĨ¤Â
āĻāĻŽāϰāĻž āĻāĻžāĻāϞ⧠āĻāĻāĻ āĻĄāĻžāĻāĻž āĻāĻžāĻāĻĒā§āϰ āĻĢāĻŋāϞā§āĻĄāĻā§āϞ⧠āĻāĻāϏāĻžāĻĨā§ āϏāĻāĻā§āώāĻŋāĻĒā§āϤāĻāĻžāĻŦā§ āĻĄāĻŋāĻĢāĻžāĻāύ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ –
type Player struct {
name, city, state string
age int
}
āĻāĻāĻžāύ⧠āĻāϞā§āϞā§āĻāĻŋāϤ āĻĒā§āϰāϤā§āϝā§āĻāĻāĻŋ āĻĢāĻŋāϞā§āĻĄ āĻāĻŋāύā§āϤ⧠Unexported, āĻ āϰā§āĻĨāĻžā§ āĻāĻ āĻĢāĻŋāϞā§āĻĄ āĻā§āϞā§āĻā§ āĻ āύā§āϝ āĻā§āύ āĻĒā§āϝāĻžāĻā§āĻ āĻĨā§āĻā§ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻž āϝāĻžāĻŦā§ āύāĻžāĨ¤ Go āϤ⧠struct āĻāϰ āĻĢāĻŋāϞā§āĻĄ āĻā§āϞ⧠āĻĒā§āϝāĻžāĻā§āĻā§āϰ āĻŦāĻžāĻāϰ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžāĻŦā§ āĻāĻŋ āϝāĻžāĻŦā§ āύāĻž āϏā§āĻāĻž āύāĻŋāϰā§āĻāϰ āĻāϰāĻā§ āĻāϰ āύāĻžāĻŽā§āϰ āĻāĻĒāϰāĨ¤ āĻāύāĻā§āύāĻļāύ āĻ āύā§āϝāĻžā§ā§, āύāĻžāĻŽā§āϰ āĻĒā§āϰāĻĨāĻŽ āĻ āĻā§āώāϰ āϝāĻĻāĻŋ āĻŦā§ āĻšāĻžāϤā§āϰ āĻšā§ā§ āĻĨāĻžāĻā§ āϤāĻžāĻšāϞ⧠āϤāĻž Exported āϧāϰāĻž āĻšā§ āĻāĻŦāĻ āĻ āύā§āϝ āĻĒā§āϝāĻžāĻā§āĻ āĻĨā§āĻā§ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻž āϝāĻžā§ –Â
type Player struct {
Name string // Exported
Age int
city string // Unexported
state string
}
[ā§Š.ā§§.ā§Š] Struct āĻāϰ āĻāύāϏā§āĻā§āϝāĻžāύā§āϏ āϤā§āϰāĻŋ
āĻāĻŽāϰāĻž āĻā§ā§āĻāĻāĻžāĻŦā§āĻ Struct -āĻāϰ āĻāύāϏā§āĻā§āϝāĻžāύā§āϏ  āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ –Â
- āĻĒā§āϰāĻĨāĻŽā§ var āĻāĻŋāĻā§āĻžāϰā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠Struct āĻāĻžāĻāĻĒā§āϰ āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞ āϤā§āϰāĻŋ āĻāϰāĻŋāĨ¤ āĻāĻāĻŦāĻžāϰ āĻā§āϝāĻžāϰāĻŋā§ā§āĻŦāϞ āĻĄāĻŋāĻā§āϞā§ā§āĻžāϰ āĻāϰāĻžāϰ āĻĒāϰ āĻāϰ āĻĒā§āϰā§āĻĒāĻžāϰā§āĻāĻŋāĻā§āϞ⧠āĻāĻŽāϰāĻž āĻāĻ āĻāĻ āĻāϰā§āĻ āϏā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ –
package main
import "fmt"
type Player struct {
Name string
Age int
City string
}
func main() {
var player1 Player
//set the value for player1 struct/object property
player1.Name = "Any name"
player1.Age = 23
player1.City = "Any city"
fmt.Println(player1)
// Output : {Any name 23 Any city}
}
- Struct āϞāĻŋāĻā§āϰāĻžāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏāϰāĻžāϏāϰāĻŋ āĻā§āϝāĻžāϞā§āĻā§āϞ⧠āϏā§āĻ āĻāϰ⧠āĻĻāĻŋāϤ⧠āĻĒāĻžāϰāĻŋ –Â
Â
package main
import "fmt"
type Player struct {
Name string
Age int
City string
}
func main() {
player2 := Player{"Another name", 34, "Another city"}
fmt.Println(player2)
//Output : {Another name 34 Another city}
}
Struct āĻāϰ āĻĒā§āϰāϤā§āϝā§āĻ āĻā§āϝāĻžāϞ⧠āĻāĻžāĻāϞ⧠āĻāϞāĻžāĻĻāĻž āĻāϞāĻžāĻĻāĻž āĻāĻžāĻŦā§āĻ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻž āϝāĻžā§āĨ¤ āϏā§āĻā§āώā§āϤā§āϰ⧠āĻāĻĒāϰ⧠āϝā§āĻāĻžāĻŦā§ āĻāĻ āĻāĻ āĻāϰ⧠āĻā§āϝāĻžāϞ⧠āϏā§āĻ āĻāϰā§āĻāĻŋāϞāĻžāĻŽ, āĻāĻāĻžāĻŦā§āĻ āĻāϞāĻžāĻĻāĻž āĻāϰ⧠āύāĻžāύāĻžāύ āĻāĻžā§āĻāĻž āĻĨā§āĻā§ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻž āϝāĻžāĻŦā§āĨ¤
[ā§Š.ā§§.ā§Ē] āύā§āϏā§āĻā§āĻĄ StructÂ
āϝā§āĻšā§āϤ⧠Struct āĻ āĻāĻāϧāϰāĻŖā§āϰ āĻĄāĻžāĻāĻž āĻāĻžāĻāĻĒ, āϏā§āϤāϰāĻžāĻ āĻĻāϰāĻāĻžāϰ⧠āĻāĻāĻāĻž Struct āĻāϰā§āĻāĻāĻž Struct āĻāϰ āĻĢāĻŋāϞā§āĻĄ āĻšāĻŋāϏā§āĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžāĻŦā§ –
type Address struct {
street string
city string
state string
zip string
}
type Person struct {
name string
age int
address Address
}
āĻāĻĒāϰā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§ āĻāĻŽāϰāĻž Address āĻāϰ āĻāĻāĻāĻž āĻāύā§āϏāĻā§āϝāĻžāύā§āϏ Person Struct āĻāϰ āĻā§āϤāϰ⧠āϰā§āĻā§āĻāĻŋāĨ¤ āĻāĻžāĻāϞ⧠āĻāĻāĻžāϧāĻŋāĻ āĻāύā§āϏāĻā§āϝāĻžāύā§āϏ āĻ āϰāĻžāĻāϤ⧠āĻĒāĻžāϰāϤāĻžāĻŽ āĻ ā§āϝāĻžāϰ⧠āĻšāĻŋāϏā§āĻŦā§ –Â
type Person struct {
name string
age int
addresses []Address
}
[ā§Š.ā§§.ā§Ģ] Struct āĻāϰ āĻĒā§ā§āύā§āĻāĻžāϰÂ
āĻāĻŽāϰāĻž āĻāĻžāĻāϞ⧠Struct āĻāϰ āĻāύā§āϏāĻā§āϝāĻžāύā§āϏ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āϏāĻŽā§ āϤāĻž āĻĒā§ā§āύā§āĻāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ –
package main
import "fmt"
type Address struct {
street string
city string
state string
zip string
}
type Person struct {
name string
age int
address Address
}
func main() {
person := &Person{
name: "Bob",
age: 35,
address: Address{
street: "789 Broadway",
city: "New York",
state: "NY",
zip: "10003",
},
}
fmt.Println(person)
// Output : &{Bob 35 {789 Broadway New York NY 10003}}
}
āĻāĻĒāϰā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§ Person Struct āĻāϰ āĻāĻāĻāĻŋ āĻāύā§āϏāĻā§āϝāĻžāύā§āϏ āĻĒā§ā§āύā§āĻāĻžāϰ āĻāϰ āϏāĻžāĻĨā§ āĻāĻŦāĻ āĻā§āϝāĻžāϞā§āĻā§āϞ⧠Struct āϞāĻŋāĻā§āϰāĻžāϞ āĻĻā§āĻŦāĻžāϰāĻž āĻĄāĻŋāĻā§āϞā§ā§āĻžāϰ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤ āĻāĻŽāϰāĻž āĻāĻžāύāĻŋ, āĻĒā§ā§āύā§āĻāĻžāϰ āĻĻāĻŋā§ā§ āĻāĻāĻžāύ⧠āĻ āĻŦāĻā§āĻā§āĻā§āϰ āϞā§āĻā§āĻļāύ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤ āĻāĻāĻžāĻŦā§ āĻĒā§ā§āύā§āĻāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž Struct āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ āύā§āĻ āĻā§āώā§āϤā§āϰā§āĻ āĻāĻŦāĻļā§āϝāĻ āĻšā§ā§ āĻĻāĻžāĻā§āĻžā§āĨ¤ āĻā§āύ⧠āĻāĻžāϰāĻŖā§ āϝāĻĻāĻŋ Struct āĻāϰ āĻāĻāĻžāϰ āĻ āύā§āĻ āĻŦā§ āĻšā§ā§ āĻĨāĻžāĻā§ āϏā§āĻā§āώā§āϤā§āϰ⧠āĻā§āϝāĻžāϞ⧠āĻšāĻŋāϏā§āĻŦā§ āĻĒāĻžāϏ āĻāϰāϞ⧠āϏā§āĻĒā§āϏ āĻāĻŽāĻĒā§āϞā§āĻā§āϏāĻŋāĻāĻŋ āĻ āύā§āĻ āĻŦā§ā§ā§ āϝāĻžā§, āĻāĻĒāĻŋ āĻšāĻŋāϏā§āĻŦā§ āϏā§āύā§āĻĄ āĻšāĻā§āĻžāϰ āĻāĻžāϰāĻŖā§āĨ¤ āĻāĻŋāύā§āϤ⧠āĻĒā§ā§āύā§āĻāĻžāϰ āĻšāĻŋāϏā§āĻŦā§ āĻĒāĻžāϏ āĻāϰāϞ⧠āĻŦāĻžā§āϤāĻŋ āϏā§āĻĒā§āϏā§āϰ āĻĒā§āϰā§ā§āĻāύ āĻšā§ āύāĻžāĨ¤