A struct in Golang is a user-defined type that allows to combine different types of variables into single type.
In Golang, Structures does not support inheritance but supports composition.
We can define a struct using a keyword struct.
Syntax: type struct_name struct{}
Example:
package main import "fmt" type User struct { name string age int } func main() { // declare a struct variable var user1 User user1.name = "vicky" user1.age = 22 // declaration and initialization of struct at a same to a struct variable user2 := User{"tejas", 23} // you can define a struct address to a varibale while initializing user3 := &User{"vinu", 23} fmt.Println("user 1 : "user1) fmt.Println("user 2 : "user2) fmt.Println("user 3 : "*user3) }
Output:
user 1 : {vicky 22}
user 2 : {tejas 23}
user 3 : {vinu 23}
Anonymous Struct in Golang:
A anonymous struct is a struct with no name. It's useful when you want create a one time useable struct.Example for Anonymous struct:
package main import "fmt" func main() { // struct with no struct name user1 := struct { name string age int }{"vicky", 22} // struct with no struct name and no field names user2 := struct { string int }{"tejas", 23} fmt.Println("user 1 : ", user1) fmt.Println("user 2 : ", user2) }
Output:
user 1 : {vicky 22}
user 2 : {tejas 23}
Important Note: if we use an Anonymous struct with no field names, same types of variables is not allowed
package main import "fmt" func main() { // struct with no struct name and no field names s1 := struct { int int }{23, 23} fmt.Println(s1) }
Output:
./prog.go:9:3: int redeclared
./prog.go:8:3: other declaration of int
./prog.go:10:8: too many values in struct literal of type struct{int}
Comments
Post a Comment