इसमें कुछ भी नहीं बनाया गया है; यदि प्रदर्शन कोई मुद्दा नहीं है (उदाहरण के लिए आप उपयोगकर्ता इनपुट को मान्य कर रहे हैं) बेन का फ़िल्टर सबसे अच्छा संक्षिप्त संस्करण है। आमतौर पर, प्रदर्शन एक मुद्दा नहीं होगा।
यह भी ध्यान दें कि match
का उपयोग करने के लिए यह थोड़ा अजीब बात है जब आप वास्तव में कुछ भी मेल नहीं खाते हैं; यदि कोई और कथन प्राप्त करने के लिए यह और अधिक बॉयलरप्लेट है। सिर्फ इतना कहना
if (s ne null && s.trim.length > 0) Some(s) else None
जिसके बारे में के रूप में तेजी से और कुछ भी रूप में संक्षिप्त है, जब तक कि आप अपने खुद के लिखना चाहते हैं तरीका है यह खाली स्थान के। ध्यान दें कि trim
एक असाधारण मानदंड का उपयोग करता है: ऊपर कुछ भी \ u0020 (i.e. '') छंटनी नहीं है, और कुछ भी बराबर या नीचे है। तो अगर आप भी अपने खुद के लिख सकता है डिटेक्टर छंटनी की स्ट्रिंग-है-खाली, तो आप इस कार्रवाई के प्रदर्शन विशेष रूप से महत्वपूर्ण था:
def ContentOption(s: String): Option[String] = {
if (s ne null) {
var i = s.length-1
while (i >= 0) {
if (s.charAt(i) > ' ') return Some(s)
i -= 1
}
}
None
}
स्रोत
2011-12-16 16:22:56
मैं भी 'विकल्प (रों) .map का प्रयोग करेंगे के साथ प्राप्त किया जा सकता (_। ट्रिम) .filter (_। nonempty)' एक अतिरिक्त जगहों को ट्रिम करने के लिए -लाइनर। –