۱ مروری بر اپراتور‌های گولانگ

در زبان Go، اپراتورها برای انجام عملیات کد برنامه‌ها استفاده می‌شوند، شامل عملیات‌های حسابی، مقایسه‌های رابطه‌ای، عملیات منطقی و غیره. اپراتورهای مختلف متناظر با قابلیت‌ها و سناریوهای مختلفی هستند. درک و مسلط شدن بر این اپراتورها پایه‌ای برای برنامه‌نویسی مؤثر است.

۲ اپراتورهای حسابی

در زبان Go، مجموعه‌ای از اپراتورهای حسابی وجود دارد:

  • جمع (+): عملیات جمع
  • تفریق (-): عملیات تفریق
  • ضرب (*): عملیات ضرب
  • تقسیم (/): عملیات تقسیم
  • باقی‌مانده (%): عملیات ماژولو

مثال‌ها:

package main

import "fmt"

func main() {
    // عملیات جمع
    sum := 10 + 5
    fmt.Println("10 + 5 =", sum) // خروجی 15

    // عملیات تفریق
    diff := 10 - 5
    fmt.Println("10 - 5 =", diff) // خروجی 5

    // عملیات ضرب
    prod := 10 * 5
    fmt.Println("10 * 5 =", prod) // خروجی 50

    // عملیات تقسیم
    quot := 10 / 5
    fmt.Println("10 / 5 =", quot) // خروجی 2

    // عملیات ماژولو
    rem := 10 % 5
    fmt.Println("10 % 5 =", rem) // خروجی 0
}

۳ اپراتورهای منطقی

اپراتورهای منطقی در زبان Go برای اتصال شرایط چندگانه (معمولاً برای مقادیر بولی) استفاده می‌شوند. این اپراتورها شامل سه نوع است: AND (&&)، OR (||) و NOT (!).

۳.۱ AND (&&)

وقتی همه شرایط صحیح باشند، نتیجه عملیات "AND" صحیح است.

مثال‌ها:

package main

import "fmt"

func main() {
    fmt.Println(true && true)   // خروجی true
    fmt.Println(true && false)  // خروجی false
    fmt.Println(false && false) // خروجی false
    // نتیجه فقط زمانی صحیح است که هر دو شرط صحیح باشند
}

۳.۲ OR (||)

اگر حداقل یک شرط صحیح باشد، نتیجه عملیات "OR" صحیح است.

مثال‌ها:

package main

import "fmt"

func main() {
    fmt.Println(true || true)   // خروجی true
    fmt.Println(true || false)  // خروجی true
    fmt.Println(false || false) // خروجی false
    // نتیجه صحیح است اگر حداقل یک شرط صحیح باشد
}

۳.۳ NOT (!)

برای برگرداندن مقدار بولی یک شرط استفاده می‌شود.

مثال‌ها:

package main

import "fmt"

func main() {
    fmt.Println(!true)  // خروجی false
    fmt.Println(!false) // خروجی true
    // مقدار بولی را برمی‌گرداند
}

۴ اپراتورهای مقایسه‌ای

اپراتورهای مقایسه‌ای در زبان Go برای مقایسه دو متغیر یا مقادیر استفاده می‌شوند:

  • مساوی (=)
  • نامساوی (!=)
  • بزرگتر از (>)
  • کوچکتر از (<)
  • بزرگتر مساوی (>=)
  • کوچکتر مساوی (<=)

نتیجه عملیات مقایسه مقدار بولی است: true یا false.

۵ اپراتورهای بیتی

در گولانگ، اپراتورهای بیتی به ما امکان می‌دهند که به‌صورت مستقیم بیت‌های دودویی داده‌ها را تغییر دهیم:

  • بیتی AND (&)
  • بیتی OR (|)
  • بیتی XOR (^)
  • شیفت به چپ بیتی (<<)
  • شیفت به راست بیتی (>>)

اپراتورهای بیتی اصلیاً در برنامه‌نویسی سطح پایین مانند عملیات‌های مستقیم سخت‌افزار، رمزنگاری و سایر سناریوها استفاده می‌شوند.

۶ اپراتورهای اختصاصی

اپراتورهای اختصاصی برای اختصاص مقادیر به متغیرها استفاده می‌شوند. در زبان Go، چندین نوع از افراداپراتورهای اختصاص وجود دارند:

  • انتساب ساده (=)
  • افزایش انتساب (+=)
  • کاهش انتساب (-=)
  • ضرب انتساب (*=)
  • تقسیم انتساب (/=)
  • باقی‌مانده انتساب (%=)

این اپراتورها باعث می‌شوند که کد موجود به صورت مختصری باشد. به عنوان مثال، x += 1 معادل x = x + 1 است.

۷ اپراتورهای ویژه

۷.۱ اپراتورهای افزایش (++) و کاهش (--)

اپراتور افزایش (++) و اپراتور کاهش (--) برای اضافه و کاهش یک واحد از مقدار یک متغیر استفاده می‌شوند. این اپراتورها تنها اپراتورهایی در زبان Go هستند که می‌توانند مستقیماً بر روی خود متغیر عمل کنند (نه بر روی یک عبارت).

package main

import "fmt"

func main() {
    x := 1
    x++
    fmt.Println("x++ =", x) // نتیجه: 2

    y := 10
    y--
    fmt.Println("y-- =", y) // نتیجه: 9
}

توجه داشته باشید که در زبان Go x++ یا x-- نمی‌تواند بخشی از یک عبارت باشد. به عنوان مثال، z := x++ امکان‌پذیر نیست.

7.2 تبدیل نوع‌ها

زبان Go به صورت استاتیک تایپ می‌باشد، به این معنی که یک بار متغیری اعلام شود، نوع آن نمی‌تواند تغییر کند. بنابراین، گاهی اوقات نیاز است که یک متغیر از یک نوع به نوع دیگر تبدیل شود. زبان Go دارای تبدیل خودکار نوع نمی‌باشد؛ باید تبدیل نوع صریحاً انجام شود.

مثال:

package main

import (
	"fmt"
)

func main() {
	var i int = 42
	fmt.Println(float64(i)) // تبدیل int به float64

	var f float64 = 3.14
	fmt.Println(int(f)) // تبدیل float64 به int، قسمت اعشاری حذف خواهد شد
}

در هنگام انجام تبدیل نوع، حایز است که اطمینان حاصل شود که داده در هنگام فرایند تبدیل ایمن باشد، مانند احتمال از دست رفتن دقت هنگام تبدیل عدد اعشاری به یک عدد صحیح.