खोज…
परिचय
इओटा एक प्रारंभिक मूल्य से संख्यात्मक स्थिरांक घोषित करने का एक तरीका प्रदान करता है जो नीरस रूप से बढ़ता है। Iota का उपयोग बिटमैक्स को घोषित करने के लिए किया जा सकता है जो अक्सर सिस्टम और नेटवर्क प्रोग्रामिंग और संबंधित मूल्यों के साथ स्थिरांक की अन्य सूचियों में उपयोग किया जाता है।
टिप्पणियों
iota
पहचानकर्ता का उपयोग स्थिरांक की सूचियों को मान प्रदान करने के लिए किया जाता है। जब कोटा का उपयोग सूची में किया जाता है तो यह शून्य के मान से शुरू होता है, और स्थिरांक की सूची में प्रत्येक मूल्य के लिए एक-एक करके वृद्धि होती है और प्रत्येक const
कीवर्ड पर रीसेट हो जाती है। अन्य भाषाओं की गणना के विपरीत, iota का उपयोग अभिव्यक्तियों में किया जा सकता है (उदाहरण। iota + 1
) जो अधिक लचीलेपन की अनुमति देता है।
इओटा का सरल उपयोग
स्थिरांक की एक सूची बनाने के लिए - प्रत्येक तत्व के लिए iota
मान निर्दिष्ट करें:
const (
a = iota // a = 0
b = iota // b = 1
c = iota // c = 2
)
एक संक्षिप्त तरीके से स्थिरांक की एक सूची बनाने के लिए - पहले तत्व को iota
मान निर्दिष्ट करें:
const (
a = iota // a = 0
b // b = 1
c // c = 2
)
एक अभिव्यक्ति में iota का उपयोग करना
iota
का उपयोग अभिव्यक्तियों में किया जा सकता है, इसलिए इसका उपयोग शून्य से शुरू होने वाले साधारण इंक्रीमेंटिंग पूर्णांक के अलावा अन्य मूल्यों को असाइन करने के लिए भी किया जा सकता है। SI इकाइयों के लिए स्थिरांक बनाने के लिए, प्रभावी गो से इस उदाहरण का उपयोग करें:
type ByteSize float64
const (
_ = iota // ignore first value by assigning to blank identifier
KB ByteSize = 1 << (10 * iota)
MB
GB
TB
PB
EB
ZB
YB
)
लंघन मान
iota
का मान अभी भी एक निरंतर सूची में हर प्रविष्टि के लिए बढ़ा है, भले ही iota का उपयोग न किया गया हो:
const ( // iota is reset to 0
a = 1 << iota // a == 1
b = 1 << iota // b == 2
c = 3 // c == 3 (iota is not used but still incremented)
d = 1 << iota // d == 8
)
भले ही कोई स्थिरांक न बनाया गया हो, भले ही खाली पहचानकर्ता का उपयोग मूल्यों को पूरी तरह से छोड़ने के लिए किया जा सकता है, यह भी बढ़ाया जाएगा:
const (
a = iota // a = 0
_ // iota is incremented
b // b = 2
)
पहला कोड ब्लॉक गो स्पेक (CC-BY 3.0) से लिया गया था।
एक अभिव्यक्ति सूची में iota का उपयोग
क्योंकि iota
प्रत्येक के बाद वृद्धि की जाती है ConstSpec
, एक ही अभिव्यक्ति सूची के भीतर मूल्यों के लिए एक ही मूल्य है जाएगा iota
:
const (
bit0, mask0 = 1 << iota, 1<<iota - 1 // bit0 == 1, mask0 == 0
bit1, mask1 // bit1 == 2, mask1 == 1
_, _ // skips iota == 2
bit3, mask3 // bit3 == 8, mask3 == 7
)
यह उदाहरण Go Spec (CC-BY 3.0) से लिया गया था।
बिटकॉइन में इटा का उपयोग
बिटकॉइन बनाते समय Iota बहुत उपयोगी हो सकता है। उदाहरण के लिए, एक नेटवर्क कनेक्शन की स्थिति का प्रतिनिधित्व करने के लिए जो सुरक्षित, प्रमाणित और / या तैयार हो सकता है, हम निम्नलिखित की तरह एक बिटमैप बना सकते हैं:
const (
Secure = 1 << iota // 0b001
Authn // 0b010
Ready // 0b100
)
ConnState := Secure|Authn // 0b011: Connection is secure and authenticated, but not yet Ready
कांस्टेबल में इओटा का उपयोग
यह कांस्टीट्यूशन क्रिएशन के लिए एन्यूमरेशन है। गो संकलक 0 से कोटा शुरू करता है और प्रत्येक निम्नलिखित स्थिरांक के लिए एक-एक वेतन वृद्धि करता है। मूल्य रन समय के बजाय संकलन समय पर निर्धारित किया जाता है। इस कारण हम iota को उन भावों पर लागू नहीं कर सकते जिनका मूल्यांकन रन टाइम पर किया जाता है।
कांस्टेबल में आईओटी का उपयोग करने का कार्यक्रम
package main
import "fmt"
const (
Low = 5 * iota
Medium
High
)
func main() {
// Use our iota constants.
fmt.Println(Low)
fmt.Println(Medium)
fmt.Println(High)
}
इसे गो प्लेग्राउंड में आज़माएं