Categories: Go

Go – How to Create a Package in Go Language


This blog represents code samples and related concepts on how to create a package or library using GO programming language.

Create a HelloWorld Package

Save the following code within some file such as hello.go within some package folder such as helloworld within folder $GOPATH/src. Create the package using command such as go install helloworld. Alternatively, go inside the folder helloworld and execute the command, go install. This would lead to creation of *.a file within $GOPATH/pkg folder. Note that command such as go build can be used to compile and check if there are any errors.

package helloworld

func PrintHello(name string) string {
    helloWorldMessage := "Hello " + name + ", How are you doing today?"
    return helloWorldMessage
}

Pay attention to some of the following:

  • The methods to be exported MUST start with capital letters. Otherwise, trying to use the method would print the error message such as “cannot refer to unexported name”
  • Package folder name, file name and actual package name can all be different. The package *.a is created based on package folder name. However, the API or method needs to be called on the name used with package when defining the package in the GO program.

Create Another Package which uses HelloWorld Package

package main

import (
        "fmt"
        "helloworld"
)

func main() {
        fmt.Printf("---- Program to Demonstrate HelloWorld Package ----\n")
        helloMessage := helloworld.PrintHello("Ajitesh Shukla")
        fmt.Printf(helloMessage + "\n")
}

Save the above within another package (folder), say, hello with a fole such as hello.go. Install the package using command such as go install. This would create an executable with name such as hello within $GOPATH/bin folder. Execute the program using command such as $GOPATH/bin/hello. In case, you have set the $GOPATH/bin in PATH variable, execute the program by typing hello.


Ajitesh Kumar

I have been recently working in the area of Data analytics including Data Science and Machine Learning / Deep Learning. I am also passionate about different technologies including programming languages such as Java/JEE, Javascript, Python, R, Julia, etc, and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data, etc. I would love to connect with you on Linkedin. Check out my latest book titled as First Principles Thinking: Building winning products using first principles thinking.

Share
Published by
Ajitesh Kumar
Tags: go

Recent Posts

Agentic Workflow Design Patterns Explained with Examples

As Large Language Models (LLMs) evolve into autonomous agents, understanding agentic workflow design patterns has…

5 hours ago

What is Data Strategy?

In today's data-driven business landscape, organizations are constantly seeking ways to harness the power of…

2 days ago

Mathematics Topics for Machine Learning Beginners

In this blog, you would get to know the essential mathematical topics you need to…

4 weeks ago

Questions to Ask When Thinking Like a Product Leader

This blog represents a list of questions you can ask when thinking like a product…

1 month ago

Three Approaches to Creating AI Agents: Code Examples

AI agents are autonomous systems combining three core components: a reasoning engine (powered by LLM),…

1 month ago

What is Embodied AI? Explained with Examples

Artificial Intelligence (AI) has evolved significantly, from its early days of symbolic reasoning to the…

3 months ago