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
किसी वेरिएबल के बाद रखे जाने पर, बढ़ाने (++) और घटाने (--) वाले स्टेटमेंट उसमें संग्रहीत संख्यात्मक वैल्यू को 1 से बढ़ा या घटा देते हैं।
इन्हें वेरिएबल से पहले रखना सिंटैक्स एरर है।
a := 10
a++ // same as a += 1, a == 11
b := 10
b-- // same as b -= 1, b == 9
चूँकि ये स्टेटमेंट हैं, ये कोई वैल्यू नहीं लौटाते।