Go, also known as Golang, is a statically typed, compiled programming language designed for simplicity and efficiency. One of the essential aspects of working in Go is handling numbers effectively. This article will guide you through everything you need to know about numbers in Go, starting from the basics, moving through intermediate topics, and tackling more advanced tasks.

Basic Number Types in Go

Go provides several built-in number types:

  • int and uint: System dependent integer types
  • int8, int16, int32, int64: Signed integer types of different sizes
  • uint8, uint16, uint32, uint64: Unsigned integer types
  • float32 and float64: Floating-point types
  • complex64 and complex128: Complex number types

Example of Basic Number Usage

package main

import (
    "fmt"
)

func main() {
    var a int = 10
    var b float64 = 3.14
    var c uint = 20

    fmt.Println("Integer:", a)
    fmt.Println("Float:", b)
    fmt.Println("Unsigned Integer:", c)
}

Intermediate: Number Operations

You can perform basic arithmetic operations using Go's number types. Here's how:

Arithmetic Operations

package main

import (
    "fmt"
)

func main() {
    a := 10
    b := 5

    fmt.Println("Addition:", a+b)
    fmt.Println("Subtraction:", a-b)
    fmt.Println("Multiplication:", a*b)
    fmt.Println("Division:", a/b)
    fmt.Println("Modulo:", a%b)
}

Note that all operations must involve the same type. Mixing different types like integers and floats requires explicit conversion.

Type Conversion

package main

import (
    "fmt"
)

func main() {
    var a int = 42
    var b float64 = float64(a) // converting int to float
    fmt.Println("Original integer:", a)
    fmt.Println("Converted to float:", b)
}

Advanced: Working with Complex Numbers

Go includes built-in support for complex numbers. A complex number can be handled using complex64 and complex128.

Using Complex Numbers

package main

import (
    "fmt"
)

func main() {
    var x complex64 = 1 + 2i
    var y complex64 = 3 + 4i

    // Perform operations on complex numbers
    z := x + y
    fmt.Println("Addition:", z)
    fmt.Println("Real part:", real(z))
    fmt.Println("Imaginary part:", imag(z))
}

Complex numbers in Go provide built-in real and imaginary handling to assist you with calculations.

Conclusion

Understanding number types and how to operate them in Go is essential for building robust applications. This tutorial covered the basics of number types, operations with numbers, type conversion, and handling complex numbers in Go. Continue exploring Golang documentation and experimenting with the code snippets to deepen your understanding of working with numbers in Go.