Арифметические операции

Язык Go как и все другие языки программирования поддерживает основные арифметические операции над числами. Список поддерживаемых арифметических операций:

Сложение

package main
import "fmt"

func main() {
    var a = 2
    var b = 2
    var c = a + b
    fmt.Println(c)      // 4
}

Вычитание

package main
import "fmt"

func main() {
    var a = 5
    var b = 5
    var c = a - b
    fmt.Println(c)      // 0
}

Умножение

package main
import "fmt"

func main() {
    var a = 5
    var b = 5
    var c = a * b
    fmt.Println(c)      // 25
}

Деление

func main() {
    var a int = 5
    var b int = 2
    var c int = a / b
    fmt.Println(c)      // 2

    var d float32 = 5
    var e float32 = 2
    var f float32 = d / e
    fmt.Println(f)      // 2.5
}

Следует учесть тот факт, что если в операции учавствуют два целых числа, то результат деления будет округлятся до целого числа:

var a int = 5
var b int = 2
var c int = a / b  // 2.5 округляется (!) в меньшую сторону до 2

Для того, чтобы получить в результате деления вещественное число, как минимум один из операндов также должен представлять собой вещественное число и результат мы должны при этом тоже сохранять в переменную вещественного типа:

package main
import "fmt"

func main() {
    var g float32 = 7.0 / 2
    fmt.Println(g)      // 3.5
}

Существует также операция "остаток от деления" (%), которая, извините за тавтологию, возварщает остаток от деления. Стоит учесть тот факт, что в этой операции могут принимать только целочисленные операнды (целые числа). Например, с помощью этой арифметической операции проверяют четность/нечетность числа:

package main
import "fmt"

func main() {
    var a int = 4 % 2
    fmt.Println(a)      // 0, т.к. число 4 - четное (4 - (2*2) = 0)

    var b int = 3 % 2
    fmt.Println(b)      // 1, (3 - 2 = 1), число нечетное
}

Также, почти во всех языках программирования существуют такие операции как постфиксные инркемент (a++) и (b--). Golang не исключение. Постфиксный инкремент (a++) увеличивает значение переменной на единицу:

var a int = 1
a++
fmt.Println(a)  // 2

A постфиксный декремент (b--) уменьшает значение переменной на единицу:

var b int = 10
b--
fmt.Println(b)  // 9