tags: Go language, loops, range, conditionals

Go language is praised for its simplicity and efficiency, and one of its standout features is its streamlined approach to loops. Unlike other languages that provide an array of loop structures, Go keeps it simple with just one loop statement: for.

To use the for loop in Go, you need to follow the pattern below:

for i := 0; i < 10; i++ {
    fmt.Println(i)
}

In this example, we first initialize a loop variable (i), then define the condition that will be checked for each iteration. If the condition is true, the loop body will be executed. Finally, the post statement (i++) is executed at the end of each iteration, which in this case increments the i variable.

The < operator is used to compare the loop variable (i) with the number 10 and decides whether the loop body should be executed or not. Unlike languages like C or JavaScript, Go doesn’t require parentheses around the loop block.

If you’re familiar with languages that have a while loop, you can simulate it in Go. Here’s an example:

i := 0

for i < 10 {
    fmt.Println(i)
    i++
}

In this case, the loop will continue until the condition (i < 10) becomes false.

Additionally, Go allows you to omit the condition entirely and use break to end the loop when desired. Here’s an example:

i := 0

for {
    fmt.Println(i)

    if i < 10 {
        break
    }

    i++
}

In this case, the loop will continue indefinitely until the break statement is encountered.

Now, let’s explore a useful feature of Go loops called range. It allows you to iterate over an array or slice with ease. Here’s an example:

numbers := []int{1, 2, 3}

for i, num := range numbers {
    fmt.Printf("%d: %d\n", i, num)
}

// Output:
// 0: 1
// 1: 2
// 2: 3

In this example, the for loop iterates over the numbers array, assigning each element to the num variable and its corresponding index to the i variable. This enables you to perform operations based on the index or the value in the loop body.

If you’re only interested in the values and don’t need the index, you can use the special _ character to ignore it. This way, you won’t trigger any unused variable errors from the compiler. Here’s an example:

for _, num := range numbers {
    // ...
}

By leveraging Go’s intuitive loop structure and range functionality, you can efficiently iterate over data collections, simplify your code, and make the most of Go’s powerful capabilities.