क्या कोटलिन में बूलियन-इंट के बीच कनवर्ट करने का कोई अंतर्निहित तरीका नहीं है? मैं सामान्य के बारे में बात कर रहा हूं:बूलियन - कोटलिन में इंट रूपांतरण
true -> 1
false -> 0
यदि नहीं, तो ऐसा करने का एक बेवकूफ तरीका क्या है?
क्या कोटलिन में बूलियन-इंट के बीच कनवर्ट करने का कोई अंतर्निहित तरीका नहीं है? मैं सामान्य के बारे में बात कर रहा हूं:बूलियन - कोटलिन में इंट रूपांतरण
true -> 1
false -> 0
यदि नहीं, तो ऐसा करने का एक बेवकूफ तरीका क्या है?
आप एक API कि 0 या 1 रिटर्न एक क्षेत्र है कि स्पष्ट रूप से होना चाहिए के लिए के लिए एक अनुरोध बनाने की तरह
fun Boolean.toInt() = if (this) 1 else 0
कोई रूपांतरित करने का कोई तरीका नहीं है। आप केवल कोड के नीचे का पालन करते हुए परिवर्तित कर सकते हैं
val output = if (input) 1 else 0
बूलियन का एक विस्तार समारोह लिख सकते हैं सच/झूठा हो। साथ ही, मैं उसी प्रकार के फ़ील्ड के लिए समान एपीआई के लिए अन्य अनुरोध भी करता हूं जो मुझे सच/गलत वापस देता है। मैं उस कोड को साझा करना चाहता हूं जो सभी एपीआई से उस प्रतिक्रिया को संभालता है।
इस मामले में मुझे लगता है कि आपकी मैपिंग लाइब्रेरी (जैक्सन, आदि) के कनवर्टर का उपयोग करना सबसे अच्छा विकल्प होगा।
सादे कोटलिन में आप इस उद्देश्य के लिए विस्तार कार्य/संपत्ति का उपयोग कर सकते हैं।
मैं इस मामले में एक विस्तार संपत्ति साथ Boolean
विस्तार करने के लिए सुझाव देंगे:
val Boolean.int
get() = if (this) 1 else 0
अब आप बस अपने कोड में true.int
कर सकते हैं
क्या इस के लिए एक उपयोग के मामले हो सकते हैं? – nhaarman
एक एपीआई के लिए अनुरोध करना जो फ़ील्ड के लिए 0 या 1 लौटाता है जो स्पष्ट रूप से सत्य/गलत होना चाहिए। साथ ही, मैं उसी प्रकार के फ़ील्ड के लिए समान एपीआई के लिए अन्य अनुरोध भी करता हूं जो मुझे सच/गलत वापस देता है। मैं उस कोड को साझा करना चाहता हूं जो सभी एपीआई से उस प्रतिक्रिया को संभालता है। – pk1914