2012-03-08 11 views
12
बस जिज्ञासा के लिए

में खाली चार परिभाषित करने के लिएकैसे, डेल्फी

क्यों डेल्फी में, अगर हम एक खाली चार से परिभाषित किया गया: असंगत प्रकार:

a:Char; 
a:=''; 

हम कोई त्रुटि मिलती है 'चार' और 'स्ट्रिंग'

हालांकि, अगर हम रखा

a:='a'; 

यह ठीक होंगा?

क्या एक खाली चार को परिभाषित करना आवश्यक है: a:=#0?

+1

नेट दुनिया में, आपके पास "खाली" चार हो सकता है क्योंकि उनके पास शून्य प्रकार हैं (उनके जेनेरिक सिस्टम के माध्यम से)। और डेटाबेस की दुनिया में, डेटाबेस फ़ील्ड शून्य हो सकते हैं, लेकिन सभी डेल्फी 'ऑर्डिनल' प्रकार, जिनमें 'इंटेगर', 'चार',' बाइट 'और बाकी शामिल हैं, जबकि उनमें कुछ सेंटीनेल (ध्वज) या शून्य मान हो सकते हैं (# 0) चार के लिए, उदाहरण के लिए, "खाली" या "शून्य" नहीं हो सकता है। चूंकि तार और सरणी सामान्य प्रकार नहीं हैं नियम नियम अलग हैं। एक स्ट्रिंग "अक्षरों की गतिशील सरणी" की तरह है। –

+1

आप '' 'निरंतर अभिव्यक्ति के बारे में उलझन में हैं। यह प्रकार 'स्ट्रिंग' है और टाइप 'char' के साथ संगत नहीं है। इसके विपरीत '' ए 'संगत है। तो, आपके पास ** ** ** ** ** खाली "सम्मेलन को परिभाषित करने के लिए ** है। – OnTheFly

उत्तर

22

एक char एक एकल (यानी, बिल्कुल एक) चरित्र है। तो 'ए', '∫', और '⌬' ठीक हैं, लेकिन 'ab' (दो-वर्ण वाली स्ट्रिंग) नहीं, 'हैलो वर्ल्ड!' (एक बारह-वर्ण स्ट्रिंग), या '' (एक शून्य-वर्ण स्ट्रिंग)।

हालांकि, नल चरित्र (# 0) किसी अन्य की तरह एक चरित्र है।

इसके अलावा, चरित्र डेटाटाइप को एक शब्द (डेल्फी के आधुनिक संस्करणों में) के रूप में कार्यान्वित किया जाता है, जो दो बाइट्स के रूप में होता है। यदि ये सभी मान 0, 1, ..., 2^16 - 1 वास्तविक पात्रों के लिए उपयोग किए जाते हैं, तो आप दुनिया में अपने 'खाली चार' का प्रतिनिधित्व कैसे करेंगे?

+2

+1 के लिए +1 (शून्य अक्षर)। यह मुझे आश्वस्त !! – Zeina

+3

@Zeina उत्तर स्वीकार करने के लिए मत भूलना ... – ComputerSaysNo

+0

आखिरी संपादित वाक्यांश के साथ आपका अधिकार, मेरा मतलब खाली चार एक शून्य चरित्र से था, लेकिन मैंने सोचा कि जब मैं एक: = '' रखता हूं, तो संकलक इसे ले जाएगा डिफ़ॉल्ट रूप से # 0, और ऐसी त्रुटि की उम्मीद नहीं थी, इसलिए मैं जानना चाहता था कि वह क्यों है। अग्रिम में धन्यवाद! – Zeina

17

खाली char जैसी कोई चीज़ नहीं है। char का मूल्य होना चाहिए। यह एक साधारण प्रकार है, एक साधारण मूल्य प्रकार है। एक पूर्णांक के रूप में, हमेशा एक मान है, तो char करता है।

मूल्य #0 खाली char नहीं है, यह मान 0 के साथ वर्ण है, जिसे आमतौर पर NUL के नाम से जाना जाता है।

+2

पास्कल में 'ordinal' प्रकार है। – OnTheFly