🐹 Go

Go में अंकगणितीय संक्रियाएँ

Что это и зачем?

Представь, что ты — кассир в магазине. К тебе приходят покупатели, и тебе нужно быстро посчитать сдачу: сколько стоит товар, сколько денег дал покупатель, сколько нужно вернуть. Или, например, ты печёшь пирожки по рецепту, где написано "возьми 2 яйца и 3 стакана муки", а тебе нужно испечь в 4 раза больше — придётся умножать. Всё это — арифметические операции: сложение, вычитание, умножение и деление.

В программировании (и в языке Go) они работают точно так же, как в математике или в жизни. Компьютер — это тот же кассир, только очень быстрый. Он умеет складывать, вычитать, умножать и делить числа за доли секунды. Без этого не обойтись: хочешь сделать игру — нужно считать очки, хочешь написать калькулятор — нужно складывать, хочешь обработать данные — снова арифметика. Это база, с которой начинается любой код.

Синтаксис и примеры кода

В Go арифметика выглядит очень похоже на обычную математику. Вот основные знаки:

  • + — сложение
  • - — вычитание
  • * — умножение (звёздочка, а не крестик)
  • / — деление (слеш)
  • % — остаток от деления (например, 7 % 3 = 1, потому что 7 делится на 3 только один раз, и остаётся 1)

Смотри примеры. Код пишется внутри функции main.

package main

import "fmt"

func main() {
    // Пример 1: Сложение — как посчитать, сколько у тебя всего яблок
    applesMasha := 5   // у Маши 5 яблок
    applesPetya := 3   // у Пети 3 яблока
    totalApples := applesMasha + applesPetya // складываем
    fmt.Println("Всего яблок:", totalApples) // напечатает: Всего яблок: 8
}
package main

import "fmt"

func main() {
    // Пример 2: Вычитание — сколько останется денег, если купить пиццу
    money := 1000          // у тебя 1000 рублей
    pizzaPrice := 450      // пицца стоит 450
    change := money - pizzaPrice // вычитаем
    fmt.Println("Сдача:", change) // напечатает: Сдача: 550
}
package main

import "fmt"

func main() {
    // Пример 3: Умножение — сколько всего печенек в 4 пачках
    cookiesPerPack := 8   // в одной пачке 8 печенек
    packs := 4            // у тебя 4 пачки
    totalCookies := cookiesPerPack * packs // умножаем
    fmt.Println("Всего печенек:", totalCookies) // напечатает: Всего печенек: 32
}
package main

import "fmt"

func main() {
    // Пример 4: Деление — как разделить пиццу на друзей
    pizzaSlices := 8      // пицца разрезана на 8 кусков
    friends := 4          // 4 друга
    slicesPerFriend := pizzaSlices / friends // делим
    fmt.Println("Каждому по кусков:", slicesPerFriend) // напечатает: Каждому по кусков: 2
}
package main

import "fmt"

func main() {
    // Пример 5: Остаток от деления — сколько кусков останется, если друзей 3
    pizzaSlices := 8
    friends := 3
    slicesPerFriend := pizzaSlices / friends // целых кусков каждому: 2
    leftover := pizzaSlices % friends        // остаток: 8 % 3 = 2
    fmt.Println("Каждому по:", slicesPerFriend, "останется:", leftover)
    // напечатает: Каждому по: 2 останется: 2
}

Обрати внимание: в Go, если ты делишь целое число на целое, результат будет целым (дробная часть отбрасывается). Например, 7 / 2 даст 3, а не 3.5. Для дробных чисел нужно использовать тип float64 (но это уже чуть сложнее).

Сравнение с Python

Если ты уже пробовал Python, то заметишь, что арифметика очень похожа. Но есть пара отличий.

В Python деление / всегда даёт дробный результат (например, 7 / 2 = 3.5). А чтобы получить целую часть, нужно писать // (два слеша). В Go наоборот: обычное деление / для целых чисел даёт целую часть, а для дробных — дробную. Остаток от деления в обоих языках — %.

Вот как те же примеры выглядели бы в Python:

# Python
apples_masha = 5
apples_petya = 3
total_apples = apples_masha + apples_petya
print("Всего яблок:", total_apples)  # 8

money = 1000
pizza_price = 450
change = money - pizza_price
print("Сдача:", change)  # 550

cookies_per_pack = 8
packs = 4
total_cookies = cookies_per_pack * packs
print("Всего печенек:", total_cookies)  # 32

pizza_slices = 8
friends = 4
slices_per_friend = pizza_slices / friends  # в Python будет 2.0 (дробное)
print("Каждому по кусков:", slices_per_friend)  # 2.0

# Остаток
leftover = pizza_slices % friends
print("Останется:", leftover)  # 0

Главное отличие: в Python не нужно явно указывать тип переменной (просто пишешь a = 5), а в Go нужно (или использовать короткую запись :=, как в примерах). Но сами операции — те же.

Типичные ошибки новичков

  • Забыть про тип данных. Если ты напишешь var a int = 10 / 3, то получишь 3, а не 3.333. Новички часто ждут дробный результат. Помни: целые числа делятся нацело.
  • Деление на ноль. В математике на ноль делить нельзя, и в Go тоже. Если попробуешь 10 / 0, программа упадёт с ошибкой (panic). Всегда проверяй, что делитель не равен нулю.
  • Путаница с остатком. Оператор % работает только с целыми числами. Нельзя написать 5.5 % 2 — будет ошибка. Остаток — это то, что остаётся после целого деления.
  • Порядок операций. Как в математике: сначала умножение и деление, потом сложение и вычитание. Если хочешь изменить порядок, используй скобки: (2 + 3) * 4 даст 20, а 2 + 3 * 4 — 14.
  • Забыть про переполнение. Если число слишком большое для типа int, оно "перевернётся" и станет отрицательным. Но для школьных задач это редкость.

Итог

Арифметические операции — это первое, что ты будешь использовать в любой программе. Они простые, как таблица умножения, но без них никуда. В Go они работают почти как в обычной жизни: плюс, минус, умножить, поделить. Главное — помнить про типы данных (целые и дробные) и про то, что деление целых чисел даёт целый результат.

Попробуй сам: напиши программу, которая считает, сколько дней ты прожил (если знаешь свой возраст в годах), или сколько секунд в сутках. Это весело и сразу видно результат. Удачи!