Elixir Language
अंतर्निहित प्रकार
खोज…
नंबर
अमृत पूर्णांक और फ्लोटिंग पॉइंट नंबरों के साथ आता है। एक पूर्णांक शाब्दिक दशमलव, बाइनरी, ऑक्टल और हेक्साडेसिमल स्वरूपों में लिखा जा सकता है।
iex> x = 291
291
iex> x = 0b100100011
291
iex> x = 0o443
291
iex> x = 0x123
291
जैसा कि एलिक्जिर बिग्नम अंकगणित का उपयोग करता है, पूर्णांक की सीमा केवल सिस्टम पर उपलब्ध मेमोरी द्वारा सीमित है ।
फ्लोटिंग पॉइंट नंबर डबल सटीक हैं और IEEE-754 विनिर्देशन का अनुसरण करते हैं।
iex> x = 6.8
6.8
iex> x = 1.23e-11
1.23e-11
ध्यान दें कि एलिक्सिर फ्लोट्स के लिए एक्सपोनेंट फॉर्म का भी समर्थन करता है।
iex> 1 + 1
2
iex> 1.0 + 1.0
2.0
पहले हमने दो पूर्णांक संख्याएँ जोड़ीं, और परिणाम पूर्णांक है। बाद में हमने दो फ्लोटिंग पॉइंट नंबर जोड़े, और परिणाम एक फ्लोटिंग पॉइंट नंबर है।
एलिक्सिर में विभाजित करना हमेशा एक अस्थायी बिंदु संख्या देता है:
iex> 10 / 2
5.0
इसी तरह, यदि आप एक फ्लोटिंग पॉइंट संख्या द्वारा पूर्णांक जोड़ते, घटाते या गुणा करते हैं तो परिणाम फ्लोटिंग पॉइंट होगा:
iex> 40.0 + 2
42.0
iex> 10 - 5.0
5.0
iex> 3 * 3.0
9.0
पूर्णांक विभाजन के लिए, कोई div/2
फ़ंक्शन का उपयोग कर सकता है:
iex> div(10, 2)
5
परमाणुओं
परमाणु निरंतर हैं जो किसी चीज के नाम का प्रतिनिधित्व करते हैं। एक परमाणु का मूल्य यह नाम है। एक परमाणु नाम एक बृहदान्त्र से शुरू होता है।
:atom # that's how we define an atom
एक परमाणु का नाम अद्वितीय है। समान नाम वाले दो परमाणु हमेशा समान होते हैं।
iex(1)> a = :atom
:atom
iex(2)> b = :atom
:atom
iex(3)> a == b
true
iex(4)> a === b
true
बूलियन्स true
और false
, वास्तव में परमाणु हैं।
iex(1)> true == :true
true
iex(2)> true === :true
true
परमाणुओं को विशेष परमाणु तालिका में संग्रहीत किया जाता है। यह जानना बहुत महत्वपूर्ण है कि यह तालिका कचरा-एकत्र नहीं है। इसलिए, यदि आप चाहते हैं (या गलती से यह एक तथ्य है) लगातार परमाणु बनाते हैं - यह एक बुरा विचार है।
बायनेरिज़ और बिटस्ट्रिंग्स
अमृत में बायनेरी को कर्नेल के उपयोग से बनाया जाता है। विशेषीकृत निर्माण << >> ।
वे एक शक्तिशाली उपकरण हैं, जो बाइनरी प्रोटोकॉल और एनकोडिंग के साथ काम करने के लिए अमृत को बहुत उपयोगी बनाता है।
बायनेरिज़ और बिटस्ट्रिंग्स को "<<" और ">>" द्वारा बुक किए गए पूर्णांक या चर मानों की अल्पविराम सीमांकित सूची का उपयोग करके निर्दिष्ट किया जाता है। वे 'इकाइयों' से बने होते हैं, या तो बिट्स का समूहन या बाइट्स का समूह। डिफ़ॉल्ट समूहीकरण एक एकल बाइट (8 बिट) है, जो पूर्णांक का उपयोग करके निर्दिष्ट है:
<<222,173,190, 239>> # 0xDEADBEEF
अमृत तार भी सीधे बायनेरिज़ में परिवर्तित होते हैं:
iex> <<0, "foo">>
<<0, 102, 111, 111>>
आप बाइनरी के प्रत्येक "सेगमेंट" में "स्पेसियर" जोड़ सकते हैं, जिससे आप एन्कोड कर सकते हैं:
- डाटा प्रकार
- आकार
- endianness
ये विनिर्देशक "::" ऑपरेटर के साथ प्रत्येक मान या चर का अनुसरण करके एन्कोड किए गए हैं:
<<102::integer-native>>
<<102::native-integer>> # Same as above
<<102::unsigned-big-integer>>
<<102::unsigned-big-integer-size(8)>>
<<102::unsigned-big-integer-8>> # Same as above
<<102::8-integer-big-unsigned>>
<<-102::signed-little-float-64>> # -102 as a little-endian Float64
<<-102::native-little-float-64>> # -102 as a Float64 for the current machine
उपलब्ध डेटा प्रकार आप उपयोग कर सकते हैं:
- पूर्णांक
- नाव
- बिट्स (बिटस्ट्रिंग के लिए उपनाम)
- bitstring
- बाइनरी
- बाइट्स (बाइनरी के लिए उपनाम)
- UTF8
- UTF16
- utf32
ज्ञात हो कि बाइनरी सेगमेंट के 'आकार' को निर्दिष्ट करते समय, यह सेगमेंट स्पेसियर में चुने गए 'प्रकार' के अनुसार बदलता रहता है:
- पूर्णांक (डिफ़ॉल्ट) 1 बिट
- फ्लोट 1 बिट
- बाइनरी 8 बिट्स