Corporate Training
Request Demo
Click me
Menu
Let's Talk
Request Demo

Tutorials

Custom Packages and Modules

33. Custom Packages and Modules

Creating custom packages and modules in Go allows you to organize and reuse your code effectively. In this tutorial, we'll explore how to create custom packages and modules in Go, and we'll provide an example of how to use them.

Step 1: Create a Directory Structure

Start by creating a directory structure for your custom packages and modules. Typically, you'll have a root directory for your project, and inside that, you'll create a directory for your module and package.

myproject/
└── mymodule/
    ├── mypackage.go
    └── mypackage_test.go

 

Step 2: Define Your Custom Package

In the 'mypackage.go' file, you can define your custom package. This can include functions, variables, and types that you want to reuse in other parts of your project.

// mypackage.go
package mypackage

import "fmt"

func Hello() {
    fmt.Println("Hello from mypackage!")
}

func Add(a, b int) int {
    return a + b
}

 

In this example, we've created a custom package called 'mypackage' that defines a  'Hello' function and an  'Add' function.

Step 3: Write Tests (Optional)

Writing tests is a good practice to ensure that your package works correctly. Create a  'mypackage_test.go' file to write test cases for your package.

// mypackage_test.go
package mypackage

import "testing"

func TestAdd(t *testing.T) {
    result := Add(3, 4)
    if result != 7 {
        t.Errorf("Expected 7, got %d", result)
    }
}

 

Step 4: Use Your Custom Package

Now, you can use your custom package in your main program or other Go files within the same module. Import the package by specifying its module path and package name.

// main.go
package main

import (
    "myproject/mymodule/mypackage"
)

func main() {
    mypackage.Hello()
    sum := mypackage.Add(5, 3)
    fmt.Printf("Sum: %d\n", sum)
}

 

Step 5: Initialize Your Module

If you're using a Go module, you need to initialize it. Run the following command in your project's root directory:

go mod init mymodule

 

This command creates a 'go.mod' file that keeps track of your module's dependencies.

Step 6: Build and Run Your Application

Now, you can build and run your application using the  'go' command:

go run main.go

 

This should produce the following output:
Hello from mypackage!
Sum: 8

 

Step 7: Installing Your Package

If you want to share your package with others, you can publish it as a module. First, make sure you have a version control system like Git set up. Then, you can publish your module using a service like GitHub.

# Initialize a Git repository (if not already done)
git init

# Commit your code
git add .
git commit -m "Initial commit"

# Create a repository on GitHub and push your code to it
git remote add origin https://github.com/yourusername/mymodule.git
git push -u origin master

 

Now, others can import and use your package by referencing your module in their Go code.

Conclusion

Creating custom packages and modules in Go allows you to build reusable, organized, and shareable code. It's a fundamental practice in Go development, and it helps maintain clean and modular codebases, making it easier to collaborate on projects and manage dependencies.