زبان برنامهنویسی گو/عملگرها و عبارات
بلوکهای کد | عملگرها و عبارات | شرط ها if , else , switch |
زبان برنامهنویسی گو |
عملگرها و عبارات در زبان برنامهنویسی Go
ویرایشدر زبان برنامهنویسی Go، عملگرها برای انجام عملیاتهای مختلف بر روی دادهها و متغیرها به کار میروند. این عملیاتها شامل عملگرهای حسابی، انتساب، مقایسهای، منطقی و بیتی است. عبارات (Expressions) نیز از ترکیب عملگرها، متغیرها و مقادیر برای ایجاد عملیاتهای پیچیدهتر تشکیل میشوند.
عملگرهای حسابی (Arithmetic Operators)
ویرایشعملگرهای حسابی برای انجام عملیات ریاضی پایه استفاده میشوند:
- `+` (جمع): دو مقدار را با هم جمع میکند. مثال: `5 + 3` نتیجه: `8`
- `-` (تفریق): مقدار دوم را از مقدار اول کم میکند. مثال: `10 - 4` نتیجه: `6`
- `*` (ضرب): دو مقدار را در هم ضرب میکند. مثال: `7 * 2` نتیجه: `14`
- `/` (تقسیم): مقدار اول را بر مقدار دوم تقسیم میکند. مثال: `15 / 3` نتیجه: `5`
- `%` (باقیمانده تقسیم): باقیمانده تقسیم مقدار اول بر مقدار دوم را برمیگرداند. مثال: `10 % 3` نتیجه: `1`
نمونه کد:
package main
import "fmt"
func main() {
a := 10
b := 3
fmt.Println("جمع: ", a + b) // خروجی: 13
fmt.Println("تفریق: ", a - b) // خروجی: 7
fmt.Println("ضرب: ", a * b) // خروجی: 30
fmt.Println("تقسیم: ", a / b) // خروجی: 3
fmt.Println("باقیمانده: ", a % b) // خروجی: 1
}
عملگرهای انتساب (Assignment Operators)
ویرایشعملگرهای انتساب برای تخصیص مقدار به یک متغیر استفاده میشوند:
- `=` (انتساب): مقدار را به متغیر تخصیص میدهد. مثال: `a = 5`
- `+=` (جمع و انتساب): مقدار را جمع کرده و به متغیر تخصیص میدهد. مثال: `a += 3`
- `-=` (تفریق و انتساب): مقدار را تفریق کرده و به متغیر تخصیص میدهد. مثال: `a -= 2`
- `*=` (ضرب و انتساب): مقدار را ضرب کرده و به متغیر تخصیص میدهد. مثال: `a *= 2`
- `/=` (تقسیم و انتساب): مقدار را تقسیم کرده و به متغیر تخصیص میدهد. مثال: `a /= 2`
- `%=` (باقیمانده تقسیم و انتساب): باقیمانده را محاسبه و به متغیر تخصیص میدهد. مثال: `a %= 3`
نمونه کد:
package main
import "fmt"
func main() {
x := 5
x += 3 // x = 8
fmt.Println(x)
x *= 2 // x = 16
fmt.Println(x)
}
عملگرهای مقایسهای (Comparison Operators)
ویرایشعملگرهای مقایسهای برای مقایسه مقادیر دو عبارت استفاده میشوند. نتیجه این مقایسهها یک مقدار بولین (`true` یا `false`) خواهد بود:
- `==` (برابر بودن): بررسی میکند که آیا دو مقدار برابرند. مثال: `5 == 5` نتیجه: `true`
- `!=` (نابرابر بودن): بررسی میکند که آیا دو مقدار نابرابرند. مثال: `5 != 3` نتیجه: `true`
- `>` (بزرگتر بودن): بررسی میکند که آیا مقدار اول بزرگتر از مقدار دوم است. مثال: `7 > 4` نتیجه: `true`
- `<` (کوچکتر بودن): بررسی میکند که آیا مقدار اول کوچکتر از مقدار دوم است. مثال: `3 < 5` نتیجه: `true`
- `>=` (بزرگتر یا مساوی بودن): بررسی میکند که آیا مقدار اول بزرگتر یا مساوی با مقدار دوم است. مثال: `5 >= 5` نتیجه: `true`
- `<=` (کوچکتر یا مساوی بودن): بررسی میکند که آیا مقدار اول کوچکتر یا مساوی با مقدار دوم است. مثال: `4 <= 5` نتیجه: `true`
نمونه کد:
package main
import "fmt"
func main() {
a := 10
b := 20
fmt.Println(a == b) // false
fmt.Println(a != b) // true
fmt.Println(a > b) // false
fmt.Println(a < b) // true
fmt.Println(a >= b) // false
fmt.Println(a <= b) // true
}
عملگرهای منطقی (Logical Operators)
ویرایشعملگرهای منطقی برای ترکیب عبارات شرطی استفاده میشوند:
- `&&` (AND منطقی): هر دو شرط باید درست باشند تا نتیجه درست باشد. مثال: `(true && false)` نتیجه: `false`
- `||` (OR منطقی): یکی از شرایط باید درست باشد تا نتیجه درست باشد. مثال: `(true || false)` نتیجه: `true`
- `!` (NOT منطقی): نتیجه شرط را معکوس میکند. مثال: `!true` نتیجه: `false`
نمونه کد:
package main
import "fmt"
func main() {
a := true
b := false
fmt.Println(a && b) // false
fmt.Println(a || b) // true
fmt.Println(!a) // false
}
عملگرهای بیتی (Bitwise Operators)
ویرایشعملگرهای بیتی بر روی اعداد در سطح بیت عمل میکنند:
- `&` (AND بیتی): هر دو بیت باید 1 باشند تا نتیجه 1 باشد. مثال: `5 & 3` نتیجه: `1`
- `|` (OR بیتی): یکی از بیتها باید 1 باشد تا نتیجه 1 باشد. مثال: `5 | 3` نتیجه: `7`
- `^` (XOR بیتی): بیتها باید متفاوت باشند تا نتیجه 1 باشد. مثال: `5 ^ 3` نتیجه: `6`
- `<<` (شیفت چپ): بیتها به سمت چپ شیفت داده میشوند. مثال: `2 << 1` نتیجه: `4`
- `>>` (شیفت راست): بیتها به سمت راست شیفت داده میشوند. مثال: `8 >> 1` نتیجه: `4`
نمونه کد:
package main
import "fmt"
func main() {
x := 5 // 101 در مبنای ۲
y := 3 // 011 در مبنای ۲
fmt.Println(x & y) // 1
fmt.Println(x | y) // 7
fmt.Println(x ^ y) // 6
fmt.Println(x << 1) // 10
fmt.Println(x >> 1) // 2
}