bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

Learn/Go/Go Tutorial
Go•Go Tutorial

Go Struct

Flash cards

Review the key moves

1/4
Core idea

What is the main idea behind Go Struct?

Lesson checks

Practice each idea before moving on

Short Mimo-style checks built from this lesson's code, terms, and sequence.

1Quick choice

Which statement best captures the main point of this lesson?

2Fill blank

Complete the missing token from the example code.

___ ; ...
3Order

Put the learning moves in the order that makes the concept easiest to apply.

A struct (short for structure) is used to create a collection of members of different data types, into a single variable.
Pass Struct as Function Arguments
Access Struct Members

Go Structures

A struct (short for structure) is used to create a collection of members of different data types, into a single variable.

While arrays are used to store multiple values of the same data type into a single variable, structs are used to store multiple values of different data types into a single variable.

A struct can be useful for grouping data together to create records.

Declare a Struct

To declare a structure in Go, use the type and struct keywords:

Syntax

type
struct_name
struct {
 member1
 datatype ;
 member2
 datatype ;
 member3
 datatype ; ...
}

Example

Here we declare a struct type Person with the following members: name , age , job and salary :

type Person struct {
 name string
 age int
 job string
 salary int
}

Tip

Notice that the struct members above have different data types. name and job is of type string, while age and salary is of type int.

Access Struct Members

To access any member of a structure, use the dot operator (.) between the structure variable name and the structure member:

Example

package main
import ("fmt")
type Person struct {
  name string
  age int
  job string
  salary int
}
func main() {
  var pers1 Person
  var pers2 Person
  // Pers1 specification pers1.name = "Hege" pers1.age = 45 pers1.job = "Teacher" pers1.salary = 6000 // Pers2 specification pers2.name = "Cecilie" pers2.age = 24 pers2.job = "Marketing" pers2.salary = 4500 // Access and print Pers1 info fmt.Println("Name: ", pers1.name) fmt.Println("Age: ", pers1.age) fmt.Println("Job: ", pers1.job) fmt.Println("Salary: ", pers1.salary) // Access and print Pers2 info fmt.Println("Name: ", pers2.name) fmt.Println("Age: ", pers2.age) fmt.Println("Job: ", pers2.job) fmt.Println("Salary: ", pers2.salary)
}

Pass Struct as Function Arguments

You can also pass a structure as a function argument, like this:

Example

package main
import ("fmt")
type Person struct {
  name string
  age int
  job string
  salary int
}
func main() {
  var pers1 Person
  var pers2 Person
  // Pers1 specification pers1.name = "Hege" pers1.age = 45 pers1.job = "Teacher" pers1.salary = 6000 // Pers2 specification pers2.name = "Cecilie" pers2.age = 24 pers2.job = "Marketing" pers2.salary = 4500 // Print Pers1 info by calling a function printPerson(pers1) // Print Pers2 info by calling a function printPerson(pers2)
}
func printPerson(pers Person) {
  fmt.Println("Name: ", pers.name)
  fmt.Println("Age: ", pers.age)
  fmt.Println("Job: ", pers.job)
  fmt.Println("Salary: ", pers.salary)
}

Previous

Go Recursion Functions

Next

Go Maps