एपेक्स - डेटा प्रकार
डेटा प्रकारों को समझना
एपेक्स भाषा दृढ़ता से टाइप की गई है, इसलिए एपेक्स के प्रत्येक चर को विशिष्ट डेटा प्रकार के साथ घोषित किया जाएगा। सभी एपेक्स वेरिएबल्स को शुरू में शून्य करने के लिए आरंभीकृत किया जाता है। एक डेवलपर के लिए हमेशा यह सुनिश्चित करने की सिफारिश की जाती है कि चर के लिए उचित मान निर्दिष्ट किए जाएं। अन्यथा इस तरह के चर जब उपयोग किए जाते हैं, अशक्त सूचक अपवादों या किसी भी अखंड अपवाद को फेंक देंगे।
एपेक्स निम्नलिखित डेटा प्रकारों का समर्थन करता है -
आदिम (पूर्णांक, डबल, लंबी, तिथि, डेटाटाइम, स्ट्रिंग, आईडी या बूलियन)
संग्रह (सूची, सेट और नक्शे) (अध्याय 6 में शामिल किया जाना है)
sObject
Enums
कक्षाएं, ऑब्जेक्ट और इंटरफेसेस (अध्याय 11, 12 और 13 में शामिल किया जाना है)
इस अध्याय में, हम सभी आदिम डेटा प्रकार, sObjects और Enums को देखेंगे। हम आगामी अध्यायों में संग्रह, कक्षाएं, ऑब्जेक्ट्स और इंटरफेस को देख रहे हैं क्योंकि वे व्यक्तिगत रूप से सीखे जाने वाले प्रमुख विषय हैं।
आदिम डेटा प्रकार
इस खंड में, हम एपेक्स द्वारा समर्थित आदिम डेटा प्रकारों पर चर्चा करेंगे।
पूर्णांक
32-बिट संख्या जिसमें कोई दशमलव बिंदु शामिल नहीं है। इसके लिए मूल्य सीमा -2,147,483,648 से शुरू होती है और अधिकतम मूल्य 2,147,483,647 तक है।
Example
हम एक वैरिएबल घोषित करना चाहते हैं जो बैरल की मात्रा को संग्रहीत करेगा जिसे रासायनिक प्रसंस्करण संयंत्र के खरीदार को भेजना होगा।
Integer barrelNumbers = 1000;
system.debug(' value of barrelNumbers variable: '+barrelNumbers);
System.debug() फ़ंक्शन चर के मूल्य को प्रिंट करता है ताकि हम इसका उपयोग डिबग करने के लिए या यह जानने के लिए कर सकें कि वर्तमान में चर का क्या मूल्य है।
उपरोक्त कोड को डेवलपर कंसोल पर पेस्ट करें और Execute पर क्लिक करें। एक बार जब लॉग उत्पन्न होते हैं, तो यह 1000 के रूप में चर "बैरलन्यूअर" का मूल्य दिखाएगा।
बूलियन
यह चर या तो सही, गलत या अशक्त हो सकता है। कई बार, इस प्रकार के चर का उपयोग प्रोग्रामिंग में ध्वज के रूप में किया जा सकता है ताकि यह पता लगाया जा सके कि विशेष स्थिति सेट है या नहीं।
Example
यदि बूलियन शिपमेंटडाइपेक्टेड को सच के रूप में सेट किया जाना है, तो इसे निम्न के रूप में घोषित किया जा सकता है -
Boolean shipmentDispatched;
shipmentDispatched = true;
System.debug('Value of shipmentDispatched '+shipmentDispatched);
दिनांक
यह चर प्रकार एक तारीख को इंगित करता है। यह केवल दिनांक को संग्रहीत कर सकता है और समय को नहीं। समय के साथ तारीख को बचाने के लिए, हमें इसे डेटाइम के चर में संग्रहीत करना होगा।
Example
दिनांक चर कैसे काम करता है, यह समझने के लिए निम्न उदाहरण पर विचार करें।
//ShipmentDate can be stored when shipment is dispatched.
Date ShipmentDate = date.today();
System.debug('ShipmentDate '+ShipmentDate);
लंबा
यह एक दशमलव बिंदु के बिना 64-बिट संख्या है। इसका उपयोग तब किया जाता है जब हमें Integer द्वारा प्रदान किए गए मूल्यों की तुलना में व्यापक मूल्यों की आवश्यकता होती है।
Example
यदि कंपनी के राजस्व को संग्रहीत करना है, तो हम डेटा प्रकार का उपयोग लंबे समय तक करेंगे।
Long companyRevenue = 21474838973344648L;
system.debug('companyRevenue'+companyRevenue);
वस्तु
हम इसे किसी भी डेटा प्रकार के रूप में संदर्भित कर सकते हैं जो एपेक्स में समर्थित है। उदाहरण के लिए, वर्ग चर उस वर्ग का ऑब्जेक्ट हो सकता है, और sObject जेनेरिक प्रकार भी एक ऑब्जेक्ट है और इसी तरह विशिष्ट विशिष्ट प्रकार खाता भी एक ऑब्जेक्ट है।
Example
निम्नलिखित उदाहरण को समझने के लिए कि कैसे परिवर्तनशील चर काम करता है।
Account objAccount = new Account (Name = 'Test Chemical');
system.debug('Account value'+objAccount);
Note - आप पूर्वनिर्धारित वर्ग की एक वस्तु बना सकते हैं, जैसा कि नीचे दिया गया है -
//Class Name: MyApexClass
MyApexClass classObj = new MyApexClass();
यह क्लास ऑब्जेक्ट है जिसे क्लास वेरिएबल के रूप में उपयोग किया जाएगा।
तार
स्ट्रिंग एकल उद्धरण के भीतर वर्णों का कोई सेट है। वर्णों की संख्या के लिए इसकी कोई सीमा नहीं है। यहां, वर्णों की संख्या निर्धारित करने के लिए हीप आकार का उपयोग किया जाएगा। यह एपेक्स कार्यक्रम द्वारा संसाधनों के एकाधिकार पर अंकुश लगाता है और यह भी सुनिश्चित करता है कि यह बहुत बड़ा न हो।
Example
String companyName = 'Abc International';
System.debug('Value companyName variable'+companyName);
समय
इस चर का उपयोग विशेष समय को संग्रहीत करने के लिए किया जाता है। इस चर को हमेशा सिस्टम स्टैटिक विधि के साथ घोषित किया जाना चाहिए।
ब्लॉब
बूँद बाइनरी डेटा का एक संग्रह है जिसे ऑब्जेक्ट के रूप में संग्रहीत किया जाता है। इसका उपयोग तब किया जाएगा जब हम सेल्सफोर्स में अटैचमेंट को वेरिएबल में स्टोर करना चाहते हैं। यह डेटा प्रकार संलग्नक को एक ही वस्तु में परिवर्तित करता है। यदि बूँद को एक स्ट्रिंग में बदलना है, तो हम उसी के लिए स्ट्रॉन्ग और वैल्यूऑफ विधियों का उपयोग कर सकते हैं।
sObject
यह Salesforce में एक विशेष डेटा प्रकार है। यह SQL में एक टेबल के समान है और इसमें फ़ील्ड्स होते हैं जो SQL में कॉलम के समान होते हैं। SObjects दो प्रकार के होते हैं - स्टैंडर्ड और कस्टम।
उदाहरण के लिए, खाता एक मानक sObject है और कोई भी अन्य उपयोगकर्ता-परिभाषित ऑब्जेक्ट (जैसे ग्राहक ऑब्जेक्ट जो हमने बनाया है) एक कस्टम sOject है।
Example
//Declaring an sObject variable of type Account
Account objAccount = new Account();
//Assignment of values to fields of sObjects
objAccount.Name = 'ABC Customer';
objAccount.Description = 'Test Account';
System.debug('objAccount variable value'+objAccount);
//Declaring an sObject for custom object APEX_Invoice_c
APEX_Customer_c objCustomer = new APEX_Customer_c();
//Assigning value to fields
objCustomer.APEX_Customer_Decscription_c = 'Test Customer';
System.debug('value objCustomer'+objCustomer);
enum
एनम एक अमूर्त डेटा प्रकार है जो निर्दिष्ट पहचानकर्ताओं के एक परिमित सेट के एक मूल्य को संग्रहीत करता है। आप Enum को परिभाषित करने के लिए कीवर्ड Enum का उपयोग कर सकते हैं। Enum का उपयोग Salesforce में किसी अन्य डेटा प्रकार के रूप में किया जा सकता है।
Example
आप निम्नलिखित कोड को निष्पादित करके रासायनिक यौगिक के संभावित नामों की घोषणा कर सकते हैं -
//Declaring enum for Chemical Compounds
public enum Compounds {HCL, H2SO4, NACL, HG}
Compounds objC = Compounds.HCL;
System.debug('objC value: '+objC);