Mastering Golang: Structs as Function Arguments

Go Structs as function arguments

Efficient Data Handling!

Welcome to the world of Golang! Passing structures as function arguments in Go allows for streamlined data transfer and encapsulation. This guide delves into utilizing structures as parameters in functions, emphasizing their role in promoting modularity, readability, and efficient data handling.

Here’s a basic example of how to define a struct, create an instance of it, and pass it as an argument to a function:

package main

import (

// Define a struct
type Person struct {
    FirstName string
    LastName  string
    Age       int

// Function that takes a Person struct as an argument
func printPerson(p Person) {
    fmt.Printf("First Name: %s\n", p.FirstName)
    fmt.Printf("Last Name: %s\n", p.LastName)
    fmt.Printf("Age: %d\n", p.Age)

func main() {
    // Create a Person instance
    person := Person{
        FirstName: "John",
        LastName:  "Doe",
        Age:       30,

    // Call the function and pass the Person instance as an argument

In the above example, we first define a Person struct with fields for first name, last name, and age. Then, we create an instance of the Person struct in the main function and pass it as an argument to the printPerson function. Inside printPerson, we can access the fields of the Person struct and print their values.

Passing Pointers to Structures

You can also pass pointers to structs if you want to modify the original struct within the function or reduce the overhead of copying large structs. To do that, you would define your function to accept a pointer to the struct:

func modifyPerson(p *Person) {
    p.Age = 40

func main() {
    person := Person{
        FirstName: "Alice",
        LastName:  "Smith",
        Age:       35,

    // Pass a pointer to the Person struct

    fmt.Printf("Updated Age: %d\n", person.Age)

In this example, we define a modifyPerson function that takes a pointer to a Person struct, and within the function, we can modify the fields of the original Person instance.


Using structures as function arguments enhances code readability, encapsulation, and data transfer in Go programs. Understanding when and how to pass structs as parameters empowers developers to write efficient and maintainable code.

That’s All Folks!

You can find all of our Golang guides here: A Comprehensive Guide to Golang

Luke Barber

Hello, fellow tech enthusiasts! I'm Luke, a passionate learner and explorer in the vast realms of technology. Welcome to my digital space where I share the insights and adventures gained from my journey into the fascinating worlds of Arduino, Python, Linux, Ethical Hacking, and beyond. Armed with qualifications including CompTIA A+, Sec+, Cisco CCNA, Unix/Linux and Bash Shell Scripting, JavaScript Application Programming, Python Programming and Ethical Hacking, I thrive in the ever-evolving landscape of coding, computers, and networks. As a tech enthusiast, I'm on a mission to simplify the complexities of technology through my blogs, offering a glimpse into the marvels of Arduino, Python, Linux, and Ethical Hacking techniques. Whether you're a fellow coder or a curious mind, I invite you to join me on this journey of continuous learning and discovery.

Leave a Reply

Your email address will not be published. Required fields are marked *

Verified by MonsterInsights