Bird
Raised Fist0
Goprogramming~5 mins

Accessing struct fields in Go - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a struct in Go?
A struct in Go is a collection of fields grouped together to form a single data type. It is used to represent a record or an object with multiple properties.
Click to reveal answer
beginner
How do you access a field named Name in a struct variable person?
You access it using the dot notation: person.Name. This retrieves the value stored in the Name field of the person struct.
Click to reveal answer
intermediate
Given a pointer to a struct p *Person, how do you access the Age field?
You can access it using p.Age. Go automatically dereferences the pointer when accessing fields, so you don't need to write (*p).Age.
Click to reveal answer
beginner
What happens if you try to access a field that does not exist in a struct?
The Go compiler will give an error saying the field does not exist. You must only access fields defined in the struct type.
Click to reveal answer
beginner
Why is using structs useful in Go programming?
Structs let you group related data together, making your code organized and easier to understand. They help model real-world objects with multiple properties.
Click to reveal answer
How do you access the field Title of a struct variable book?
Abook:Title
Bbook.Title
Cbook[Title]
Dbook->Title
If p is a pointer to a struct, which is correct to access field Age?
Ap->Age
B*p.Age
Cp.Age
Dp[Age]
What error occurs if you try to access a non-existent field in a struct?
ACompile-time error
BRuntime panic
CSilent failure
DReturns zero value
Which of these is a valid way to define a struct in Go?
Astruct Person { Name string; Age int }
Bclass Person { Name string; Age int }
CPerson = struct(Name string, Age int)
Dtype Person struct { Name string; Age int }
Why use structs in Go?
ATo group related data together
BTo perform arithmetic operations
CTo create loops
DTo handle errors
Explain how to access fields in a Go struct and how pointers to structs affect this access.
Think about how you write <code>person.Name</code> and how Go lets you use <code>p.Age</code> if p is a pointer.
You got /3 concepts.
    Describe what happens if you try to access a field that does not exist in a Go struct.
    Remember Go checks field names when you compile your program.
    You got /3 concepts.

      Practice

      (1/5)
      1.

      Which of the following is the correct way to access the Age field of a struct variable person in Go?

      easy
      A. person.Age()
      B. person->Age
      C. person["Age"]
      D. person.Age

      Solution

      1. Step 1: Understand struct field access syntax in Go

        In Go, struct fields are accessed using dot notation: structVariable.fieldName.
      2. Step 2: Apply to the given variable and field

        For variable person and field Age, the correct access is person.Age.
      3. Final Answer:

        person.Age -> Option D
      4. Quick Check:

        Use dot notation for struct fields = person.Age [OK]
      Hint: Use dot (.) to access struct fields in Go [OK]
      Common Mistakes:
      • Using arrow (->) like in C/C++
      • Trying to access fields like map keys
      • Calling field as a function with ()
      2.

      Which of the following code snippets correctly accesses the Title field of a struct book?

      type Book struct {
          Title string
          Author string
      }
      
      var book Book
      // Access Title here
      easy
      A. book.Title
      B. book->Title
      C. book["Title"]
      D. book.Title()

      Solution

      1. Step 1: Recall Go struct field access syntax

        Fields in Go structs are accessed using dot notation without parentheses or brackets.
      2. Step 2: Apply to the book variable and Title field

        The correct syntax is book.Title.
      3. Final Answer:

        book.Title -> Option A
      4. Quick Check:

        Dot notation accesses struct fields = book.Title [OK]
      Hint: Remember: struct fields use dot, not brackets or arrows [OK]
      Common Mistakes:
      • Using brackets like a map
      • Using arrow operator (->)
      • Calling field as a method
      3.

      What will be the output of the following Go program?

      package main
      import "fmt"
      
      type Person struct {
          Name string
          Age  int
      }
      
      func main() {
          p := Person{Name: "Alice", Age: 30}
          fmt.Println(p.Age)
      }
      medium
      A. Alice
      B. 30
      C. Name
      D. Compilation error

      Solution

      1. Step 1: Understand struct initialization and field access

        The struct Person is initialized with Name: "Alice" and Age: 30. The variable p holds this struct.
      2. Step 2: Identify the printed field

        The code prints p.Age, which is 30.
      3. Final Answer:

        30 -> Option B
      4. Quick Check:

        Print struct field Age = 30 [OK]
      Hint: Print struct.field to get that field's value [OK]
      Common Mistakes:
      • Printing the Name field instead of Age
      • Expecting field name as output
      • Thinking code causes error
      4.

      Identify the error in the following Go code and choose the correct fix:

      package main
      import "fmt"
      
      type Car struct {
          Model string
          Year  int
      }
      
      func main() {
          c := Car{Model: "Tesla", Year: 2022}
          fmt.Println(c->Model)
      }
      medium
      A. Add parentheses: c.Model()
      B. Change c->Model to c["Model"]
      C. Change c->Model to c.Model
      D. No error, code is correct

      Solution

      1. Step 1: Identify incorrect field access operator

        The code uses c->Model, which is invalid in Go. Go uses dot notation for struct fields.
      2. Step 2: Correct the field access syntax

        Replace c->Model with c.Model to fix the error.
      3. Final Answer:

        Change c->Model to c.Model -> Option C
      4. Quick Check:

        Use dot (.) not arrow (->) for struct fields [OK]
      Hint: Use dot (.) for struct fields, not arrow (->) [OK]
      Common Mistakes:
      • Using arrow operator like in C/C++
      • Trying to access fields like map keys
      • Calling field as a function
      5.

      Given the struct and code below, what will be the output?

      package main
      import "fmt"
      
      type Employee struct {
          ID    int
          Name  string
          Title string
      }
      
      func main() {
          e := Employee{ID: 101, Name: "Bob", Title: "Developer"}
          e.Title = "Senior Developer"
          fmt.Println(e.Title)
      }
      hard
      A. Senior Developer
      B. Developer
      C. Title
      D. Compilation error

      Solution

      1. Step 1: Understand struct field update

        The struct Employee is created with Title: "Developer". Then the field Title is updated to "Senior Developer".
      2. Step 2: Identify printed value

        The code prints e.Title after update, so output is Senior Developer.
      3. Final Answer:

        Senior Developer -> Option A
      4. Quick Check:

        Updated struct field prints new value [OK]
      Hint: Assign new value with dot, then print updated field [OK]
      Common Mistakes:
      • Expecting original value instead of updated
      • Thinking field cannot be changed
      • Confusing field name with value
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard