Go - Constants: A Beginner's Guide

Welcome, aspiring programmers! Today, we're diving into the world of constants in Go. Don't worry if you've never written a line of code before - we'll start from the basics and work our way up. By the end of this tutorial, you'll be a constant connoisseur!

Go - Constants

What are Constants?

Before we jump into the nitty-gritty, let's understand what constants are. In programming, a constant is a value that doesn't change throughout the execution of a program. Think of it as a box where you store a value and seal it shut - once it's in there, it's not coming out or changing!

Integer Literals

Let's start with something simple - integer literals. These are whole numbers without any decimal points.

Example 1: Basic Integer Literals

package main

import "fmt"

func main() {
    fmt.Println(42)
    fmt.Println(-17)
    fmt.Println(0)
}

In this example, we're printing three integer literals: 42, -17, and 0. Simple, right? But Go allows us to get fancy with our integers.

Example 2: Different Base Systems

package main

import "fmt"

func main() {
    fmt.Println(42)    // Decimal (base 10)
    fmt.Println(0x2A)  // Hexadecimal (base 16)
    fmt.Println(052)   // Octal (base 8)
}

Here's where it gets interesting. All three lines print the same number (42), but written in different number systems. It's like speaking the same number in different languages!

Floating-point Literals

Now, let's float on to decimal numbers, shall we?

Example 3: Basic Floating-point Literals

package main

import "fmt"

func main() {
    fmt.Println(3.14159)
    fmt.Println(-0.5)
    fmt.Println(2.0)
}

These are your garden-variety decimal numbers. But Go gives us more ways to express them:

Example 4: Scientific Notation

package main

import "fmt"

func main() {
    fmt.Println(6.022e23)  // Avogadro's number
    fmt.Println(1.6e-19)   // Charge of an electron
}

Scientific notation is super handy for very large or very small numbers. It's like giving numbers their own superpowers!

Escape Sequences

Sometimes, we need to include special characters in our strings. That's where escape sequences come in handy.

Example 5: Common Escape Sequences

package main

import "fmt"

func main() {
    fmt.Println("Hello\nWorld")  // Newline
    fmt.Println("Tab\tcharacter")  // Tab
    fmt.Println("Backslash: \\")  // Backslash
    fmt.Println("\"Quotes\"")  // Quotes
}

These little backslashes are like magic wands, transforming ordinary characters into special ones!

String Literals in Go

Strings are like the sentences of programming. Let's see how Go handles them.

Example 6: Basic String Literals

package main

import "fmt"

func main() {
    fmt.Println("Hello, Gophers!")
    fmt.Println(`This is a raw string literal.
It can span multiple lines.`)
}

Notice the difference? The first uses double quotes, while the second uses backticks. The backtick version is called a raw string literal and can include newlines!

The const Keyword

Now, let's put it all together with the const keyword.

Example 7: Declaring Constants

package main

import "fmt"

const (
    PI = 3.14159
    GRAVITATIONAL_CONSTANT = 6.67430e-11
    GREETING = "Hello, Constants!"
)

func main() {
    fmt.Println(PI)
    fmt.Println(GRAVITATIONAL_CONSTANT)
    fmt.Println(GREETING)
}

Here, we're declaring constants that can't be changed later in the program. It's like carving these values in stone!

Constant Methods

Go provides several methods for working with constants. Here's a table summarizing them:

Method Description Example
iota Generates a sequence of related constants const ( A = iota; B; C )
Type inference Go can infer the type of a constant const x = 5
Untyped constants Constants without a specific type const y = 3.14
Typed constants Constants with a specific type const z int64 = 1000000

Remember, constants are your friends in Go. They help keep your code organized and prevent accidental changes to important values.

In conclusion, constants in Go are powerful tools that allow you to define unchangeable values in your programs. From simple integers to complex strings, constants provide a way to make your code more readable and maintainable.

So, go forth and conquer the world of constants, young Gophers! Your journey into the exciting world of Go programming has just begun. Happy coding!

Credits: Image by storyset