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 (

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

Ajitesh Kumar

Ajitesh has been recently working in the area of AI and machine learning. Currently, his research area includes Safe & Quality AI. In addition, he is also passionate about various different technologies including programming languages such as Java/JEE, Javascript and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data etc.

He has also authored the book, Building Web Apps with Spring 5 and Angular.
Ajitesh Kumar

Leave A Reply

Time limit is exhausted. Please reload the CAPTCHA.