RX0056

डोमेन: निष्पादन

त्रुटि संदेश

%s की तुलना %s से क्रम में नहीं की जा सकती: क्रम-तुलना ONE किस्म के दो मानों की होती है

संदेश में %s उस मान की जगह है जिसे इंजन त्रुटि उठाते समय भरता है।

कहानी

आपने दो अलग किस्मों के मानों की क्रम-तुलना करवानी चाही, और इंजन ने कहा कि इनमें कौन पहले आता है, यह सवाल ही बेमानी है। चलिए देखें। <, >, <= और >= पूछते हैं कि दो में से कौन पहले है। यह सवाल तभी सार्थक है जब दोनों एक ही किस्म के हों: दो संख्याएँ, जिनकी तुलना संख्या के रूप में होती है, या दो पाठ, जिनकी बाइट-दर-बाइट। संख्या बनाम पाठ का कोई क्रम नहीं है। और इंजन कोई क्रम गढ़ेगा नहीं, क्योंकि नियम है कि उद्धरण वाली संख्या पाठ ही रहती है, कोई रूपांतरण नहीं। इसलिए 1 < 'a' और 1 < '2' दोनों अस्वीकार होते हैं। बराबरी का मामला अलग है: अलग किस्म के मान कभी बराबर नहीं होते, इसलिए 1 == '1' का जवाब false है और 1 != '1' का true। जैसे आम और किलोमीटर में कौन बड़ा है। इलाज: दोनों तरफ़ एक ही किस्म रखिए, या मान को खुद साफ़ तौर पर बदलिए। संदेश में बाएँ और दाएँ मान की किस्म लिखी है।

पाठ Rush इंजन की त्रुटि सूची से लिया गया है।