Vivasoft-logo

[ā§Š.ā§§] āĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϚāĻžāϰ āĻŦāĻž āĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϏ (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 āĻāϰ āφāĻ•āĻžāϰ āĻ…āύ⧇āĻ• āĻŦ⧜ āĻšā§Ÿā§‡ āĻĨāĻžāϕ⧇ āϏ⧇āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻ­ā§āϝāĻžāϞ⧁ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĒāĻžāϏ āĻ•āϰāϞ⧇ āĻ¸ā§āĻĒ⧇āϏ āĻ•āĻŽāĻĒā§āϞ⧇āĻ•ā§āϏāĻŋāϟāĻŋ āĻ…āύ⧇āĻ• āĻŦā§‡ā§œā§‡ āϝāĻžā§Ÿ, āĻ•āĻĒāĻŋ āĻšāĻŋāϏ⧇āĻŦ⧇ āϏ⧇āĻ¨ā§āĻĄ āĻšāĻ“ā§ŸāĻžāϰ āĻ•āĻžāϰāϪ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĒā§Ÿā§‡āĻ¨ā§āϟāĻžāϰ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĒāĻžāϏ āĻ•āϰāϞ⧇ āĻŦāĻžā§œāϤāĻŋ āĻ¸ā§āĻĒ⧇āϏ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ āύāĻžāĨ¤