Go Program to Concatenate Two Strings Without Using Built-in Functions

1. Introduction

In computer science, string concatenation refers to the operation of joining character strings end-to-end. Although Go provides built-in support for string concatenation, understanding how this process can be accomplished manually not only reinforces foundational knowledge but also offers insights into string manipulation. This guide will lead you through the steps to concatenate two strings in Go without resorting to built-in functions.

2. Program Overview

The bespoke Go program is designed to:

1. Obtain two strings from the user.

2. Combine these strings manually.

3. Display the concatenated result.

3. Code Program

// The story commences with the prologue of the main package.
package main

// The trusty fmt package is drafted to manage our input and output needs.
import "fmt"

// Function to concatenate two strings manually.
func concatenateStrings(s1, s2 string) string {
    // Convert both strings to slice of runes for easier manipulation.
    runes1 := []rune(s1)
    runes2 := []rune(s2)
    // Resize the first slice to accommodate both strings.
    result := make([]rune, len(runes1)+len(runes2))
    // Populate the result slice with characters from both strings.
    i := 0
    for _, r := range runes1 {
        result[i] = r
    for _, r := range runes2 {
        result[i] = r
    return string(result)

// The heartbeat of our program, the main function.
func main() {
    var string1, string2 string

    // Prompting the user for two strings.
    fmt.Print("Enter the first string: ")
    fmt.Print("Enter the second string: ")

    // Manifesting the concatenated string to the user.
    fmt.Printf("The concatenated string is: %s\n", concatenateStrings(string1, string2))


For instance, if the user inputs the strings Hello and World, the program's proclamation will be:
The concatenated string is: HelloWorld

4. Step By Step Explanation

1. Package and Import: The journey starts with the package main statement, marking the beginning of our expedition. For all I/O operations, the fmt package is our companion.

2. String Concatenation Function: The concatenateStrings function stands at the heart of our manual concatenation endeavor. Both strings are transmuted into a slice of runes, a type that facilitates character-based operations. A result slice, sufficiently sized to nestle both strings, is then populated sequentially with characters from the two source strings.

3. User Interaction & Display: The string1 and string2 variables serve as repositories for the user's strings. Post retrieval of both inputs, the program leverages the concatenateStrings function to derive the concatenated string, which is then showcased to the user.