Go নিচের অ্যারিথমেটিক অপারেটরগুলো সমর্থন করে:
| অপারেটর | উদাহরণ |
|---|---|
+ |
4 + 6 == 10 |
- |
15 - 10 == 5 |
* |
2 * 3 == 6 |
/ |
13 / 3 == 4 |
% |
13 % 3 == 1 |
ইন্টিজার ডিভিশনে ভাগশেষ বাদ পড়ে (যেমন 5 / 2 == 2)।
+ অপারেটর দিয়ে স্ট্রিং জোড়াও করা যায়: "foo" + "bar" == "foobar"।
Go ভিন্ন ভিন্ন সংখ্যাসূচক টাইপের মধ্যে অ্যারিথমেটিক অপারেশন করতে দেয় না:
x := 42
n := 2.0
value := n * x // invalid operation: n * x (mismatched types float64 and int)
অপারেন্ডগুলো একই টাইপের হতে হয়, আর কিছু ক্ষেত্রে স্পষ্ট কনভার্সন করা লাগে:
x := float64(42)
n := 2.0
value := n * x
প্রতিটি অপারেটরের একটি শর্টহ্যান্ড অ্যাসাইনমেন্ট রূপ আছে, যা ভ্যারিয়েবলটির মান সরাসরি বদলে দেয়:
a := 1
a += 2 // same as a = a + 2 == 3
b := 2
b -= 2 // same as b = b - 2 == 0
c := 4
c *= 2 // same as c = c * 2 == 8
d := 8
d /= 2 // same as d = d / 2 == 4
e := 16
e %= 2 // same as e = e % 2 == 0
ভ্যারিয়েবলের পরে বসালে ইনক্রিমেন্ট (++) ও ডিক্রিমেন্ট (--) স্টেটমেন্ট ভ্যারিয়েবলে জমা থাকা সংখ্যার মান ১ করে বাড়ায় বা কমায়।
এগুলো ভ্যারিয়েবলের আগে বসানো সিনট্যাক্স এরর।
a := 10
a++ // same as a += 1, a == 11
b := 10
b-- // same as b -= 1, b == 9
যেহেতু এগুলো স্টেটমেন্ট, তাই কোনো মান রিটার্ন করে না।