Go - Операторы: Ваш доброжелательный гид по магии программирования

Здравствуйте, будущие кодировщики! Сегодня мы окунемся в чарующую страну операторов Go. Не волнуйтесь, если вы еще не писали ни строчки кода - я буду вашим верным проводником в этом магическом путешествии. К концу этого руководства вы будете использовать операторы, как профи!

Go - Operators

Что такое операторы?

Прежде чем мы начнем, давайте поговорим о том, что такое операторы на самом деле. Представьте операторы как магические палочки программирования. Они позволяют нам выполнять действия с是我们的 данными, сравнивать значения и принимать решения в нашем коде. Точно так же, как повар использует разные инструменты для создания美味的 еды, мы используем разные операторы для создания потрясающих программ!

Арифметические операторы: Математические маги

Давайте начнем с чего-то знакомого - математики! Арифметические операторы в Go работают так же, как базовые математические операции, которые выучили в школе. Вот таблица этих математических чудес:

Оператор Описание Пример
+ Сложение 5 + 3 = 8
- Вычитание 10 - 4 = 6
* Умножение 3 * 4 = 12
/ Деление 15 / 3 = 5
% Остаток от деления (модуль) 17 % 5 = 2

Давайте увидим это в действии с забавной программой:

package main

import "fmt"

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

fmt.Println("Сложение:", a + b)
fmt.Println("Вычитание:", a - b)
fmt.Println("Умножение:", a * b)
fmt.Println("Деление:", a / b)
fmt.Println("Остаток от деления:", a % b)
}

Когда вы запустите эту программу, вы увидите:

Сложение: 13
Вычитание: 7
Умножение: 30
Деление: 3
Остаток от деления: 1

Не правда ли, это здорово? Мы только что выполнили все базовые математические операции всего в нескольких строчках кода!

Равенства операторы: Сравнительные Kreuzritter

Следующие операторы - это relational операторы. Они похожи на судей на конкурсе талантов - они сравнивают два значения и решают, является ли сравнение истинным или ложным. Вот наш список comparison crusaders:

Оператор Описание Пример
== Равно 5 == 5 истина
!= Не равно 5 != 3 истина
> Больше чем 7 > 3 истина
< Меньше чем 2 < 8 истина
>= Больше или равно 5 >= 5 истина
<= Меньше или равно 4 <= 4 истина

Давайте применяем их:

package main

import "fmt"

func main() {
x := 5
y := 10

fmt.Println("Равен ли x y?", x == y)
fmt.Println("x не равно y?", x != y)
fmt.Println("x больше y?", x > y)
fmt.Println("x меньше y?", x < y)
fmt.Println("x больше или равно y?", x >= y)
fmt.Println("x меньше или равно y?", x <= y)
}

Запуск этого даст вам:

Равен ли x y? ложно
x не равно y? истина
x больше y? ложно
x меньше y? истина
x больше или равно y? ложно
x меньше или равно y? истина

Видите, как каждое сравнение дает нам истинный или ложный результат? Это сила relational операторов!

Логические операторы: Decision makers

Логические операторы похожи на мудрых старейшин нашего программного селения. Они помогают нам принимать сложные решения, комбинируя несколько условий. Вот наши логические luminaries:

Оператор Описание Пример
&& И true && false = false
|| ИЛИ true || false = true
! НЕ !true = false

Давайте посмотрим, как это работает:

package main

import "fmt"

func main() {
isSunny := true
isWarm := false

fmt.Println("Солнечно И тепло?", isSunny && isWarm)
fmt.Println("Солнечно ИЛИ тепло?", isSunny || isWarm)
fmt.Println("НЕ солнечно?", !isSunny)
}

Это выведет:

Солнечно И тепло? ложно
Солнечно ИЛИ тепло? истина
НЕ солнечно? ложно

Эти операторы incredibly powerful для принятия решений в ваших программах. Они как мозг вашего кода!

Битовые операторы: Двоичные друзья

Теперь мы въезжаем в мир двоичной магии с bitwise операторами. Эти операторы работают напрямую с двоичными представлениями чисел. Они немного сложные, но знание о них может быть super helpful! Вот наш список binary buddies:

Оператор Описание
& Битовый AND
| Битовый OR
^ Битовый XOR
<< Сдвиг влево
>> Сдвиг вправо

Вот простой пример:

package main

import "fmt"

func main() {
a := 5  // двоично: 101
b := 3  // двоично: 011

fmt.Printf("a & b = %d\n", a & b)
fmt.Printf("a | b = %d\n", a | b)
fmt.Printf("a ^ b = %d\n", a ^ b)
fmt.Printf("a << 1 = %d\n", a << 1)
fmt.Printf("b >> 1 = %d\n", b >> 1)
}

Это выведет:

a & b = 1
a | b = 7
a ^ b = 6
a << 1 = 10
b >> 1 = 1

Не волнуйтесь, если это сначала seems a bit confusing. Битовые операции похожи на изучение нового языка - это требует времени и практики!

Операторы назначения: Value setters

Операторы назначения resemble helpful assistants в нашем коде. Они помогают нам быстро назначать и обновлять значения. Вот наш список value setters:

Оператор Описание Пример
= Простое назначение x = 5
+= Добавить и назначить x += 3 это то же, что x = x + 3
-= Вычесть и назначить x -= 2 это то же, что x = x - 2
*= Умножить и назначить x = 4 это то же, что x = x 4
/= Разделить и назначить x /= 2 это то же, что x = x / 2
%= Модуль и назначить x %= 3 это то же, что x = x % 3

Давайте посмотрим, как это работает:

package main

import "fmt"

func main() {
x := 10

fmt.Println("Исходное x:", x)

x += 5
fmt.Println("After x += 5:", x)

x -= 3
fmt.Println("After x -= 3:", x)

x *= 2
fmt.Println("After x *= 2:", x)

x /= 4
fmt.Println("After x /= 4:", x)

x %= 3
fmt.Println("After x %= 3:", x)
}

Это выведет:

Исходное x: 10
After x += 5: 15
After x -= 3: 12
After x *= 2: 24
After x /= 4: 6
After x %= 3: 0

Эти операторы - отличные короткие cut, которые делают наш код чище и эффективнее!

Разнообразные операторы: Unique unicorns

Go также имеет некоторые особые операторы, которые не подходят в другие категории. Эти уникальные unicorns:

Оператор Описание
& Адрес
* Указатель к
<- Оператор получения

Эти концепции более продвинутые, и мы их рассмотрим в будущих уроках. Пока что просто знайте, что они существуют и ждут, чтобы вы их открыли!

Приоритетность операторов в Go: Hierarchy of power

Как и в математике, Go имеет определенный порядок выполнения операций. Это называется приоритетность операторов. Вот упрощенная версия приоритетности операторов в Go, от самого высокого до самого низкого:

  1. Скобки ()
  2. Унарные операторы (!, -, +, &, *, <-)
  3. Умножение, деление, модуль (*, /, %)
  4. Сложение и вычитание (+, -)
  5. Сравнительные операторы (==, !=, <, <=, >, >=)
  6. Логическое И (&&)
  7. Логическое ИЛИ (||)
  8. Операторы назначения (=, +=, -=, *=, /=, %=)

Когда не уверены, используйте скобки, чтобы сделать свои намерения clear!

И вот оно, мои молодые кодировщики! Мы прошли через страну операторов Go, от знакомых арифметических операторов до загадочных битовых операторов. Помните, чтобы стать мастером этих операторов, нужно практиковаться, так что не отчаивайтесь, если это не сразу сработает. Продолжайте программировать, продолжайте экспериментировать, и скоро вы будете casts programming spells как настоящий Go wizard!

Credits: Image by storyset