Structs
This Go program demonstrates the usage of structs, creating instances of a struct, initializing struct fields, and working with pointers to structs.
Let's go through each part of the code with inline comments and additional explanations:
package main
import "fmt"
// Define a struct named 'person' with two fields: 'name' of type string and 'age' of type int
type person struct {
name string
age int
}
// Function newPerson creates and initializes a new person, setting the name and age, and returns a pointer to the person struct
func newPerson(name string) *person {
p := person{name: name}
p.age = 42
return &p
}
func main() {
// Create an instance of the person struct with field values "Bob" and 20, and print it
fmt.Println(person{"Bob", 20})
// Create an instance of the person struct with named field values, "Alice" and 30, and print it
fmt.Println(person{name: "Alice", age: 30})
// Create an instance of the person struct with a named field value, "Fred," and print it
fmt.Println(person{name: "Fred"})
// Create an instance of the person struct using the newPerson function, setting the name to "Ann" and age to 40, and print it
fmt.Println(newPerson("Ann"))
// Create an instance of the person struct using the newPerson function, setting the name to "Jon", and print it
fmt.Println(newPerson("Jon"))
// Create an instance of the person struct with field values "Sean" and 50
s := person{name: "Sean", age: 50}
// Access and print the 'name' field of the person struct
fmt.Println(s.name)
// Create a pointer to the person struct
sp := &s
// Access and print the 'age' field of the person struct using a pointer
fmt.Println(sp.age)
// Modify the 'age' field of the person struct using the pointer
sp.age = 51
// Print the modified 'age' field of the person struct
fmt.Println(sp.age)
// Create an instance of an anonymous struct representing a dog and print it
dog := struct {
name string
isGood bool
}{
"Rex",
true,
}
fmt.Println(dog)
}
Output
{Bob 20}
{Alice 30}
{Fred 0}
&{Ann 40}
&{Jon 42}
Sean
50
51
{Rex true}
Explanation:
A
person
struct is defined with two fields:name
of type string andage
of type int.The
newPerson
function creates and initializes a new person, setting the name and age, and returns a pointer to the person struct.In the
main
function:Instances of the
person
struct are created with different field values and printed.The
newPerson
function is used to create instances with default values and print them.Field values of an instance are accessed and printed.
A pointer to a
person
struct is created and used to access and modify field values.An anonymous struct representing a dog is created and printed.
Last updated
Was this helpful?