2013-01-10 27 views
51

मुझे यह जांचने की ज़रूरत है कि सूची में कोई स्ट्रिंग मौजूद है या नहीं, और फ़ंक्शन को कॉल करें जो तदनुसार बूलियन स्वीकार करता है।स्कैला जांच करें कि क्या सूची सूची में मौजूद है

क्या यह एक लाइनर के साथ इसे हासिल करना संभव है?

नीचे कोड सबसे अच्छा है मैं मिल सकता है:

val strings = List("a", "b", "c") 
val myString = "a" 

strings.find(x=>x == myString) match { 
    case Some(_) => myFunction(true) 
    case None => myFunction(false) 
} 

मुझे यकीन है कि यह कम कोडिंग के साथ यह करने के लिए संभव है, लेकिन मैं पता नहीं कैसे!

उत्तर

75

बस contains

myFunction(strings.contains(myString)) 
+1

यदि मैं स्ट्रिंग से निपटता नहीं हूं तो मुझे यह जांचने की ज़रूरत है कि कोई मूल्य किसी भी संभावित मैचों में से कोई है या नहीं? – tutuca

+13

फिर आपको इसके लिए एक नया प्रश्न पूछना चाहिए ... –

+1

@tutuca, यह जांचें [चेक-इन-वैल्यू-इन-लिस्ट-इन-पार्ट-ऑफ-स्ट्रिंग] (http://stackoverflow.com/questions/16046146/जाँच-अगर मान-इन-सूची-भाग वाले के- स्ट्रिंग है)। –

23

का उपयोग और तुम सख्त समानता का उपयोग नहीं करना चाहता था, तो आप इस्तेमाल कर सकते हैं मौजूद है:


myFunction(strings.exists { x => customPredicate(x) }) 
1

इस अलग विधेय के साथ भी काम करना चाहिए

myFunction(strings.find(_ == mystring).isDefined) 
+3

क्या आप केवल परिभाषित उत्तर का उपयोग करने के बजाय मौजूदा उपयोग कर सकते हैं परिभाषित – Ciaran0

1

आपके मामले में मैं सेट और न सूची का उपयोग करने पर विचार करता हूं, यह सुनिश्चित करने के लिए कि आपके पास अद्वितीय मूल्य हैं ly। जब तक आपको कभी-कभी डुप्लीकेट शामिल करने की आवश्यकता नहीं होती है।

इस मामले में, आपको सूचियों के आस-पास कोई रैपर फ़ंक्शन जोड़ने की आवश्यकता नहीं है।

1

और भी आसान!

strings contains myString 
+0

[स्वीकृत उत्तर] से अलग कैसे है (https://stackoverflow.com/a/14267635/8371915)? – user8371915

+0

यह मूल रूप से वही है लेकिन मतभेद हैं: 1. कम ब्रैकेट 2. कम अवधि 3. मेरे समारोह का कोई संदर्भ नहीं 4. अधिक सफेद स्थान। कुल मिलाकर; मेरा उत्तर = 25 वर्ण बनाम स्वीकृत उत्तर = 38 वर्ण – Taylrl

+0

यह एक उदार सवाल था;) आपको एक संदर्भ देने के लिए मैं यहां [एलक्यूपी] (https://stackoverflow.com/review/low-quality-posts/) से आया हूं। मैंने हटाने की अनुशंसा नहीं की, लेकिन यदि आप देर से उत्तर पोस्ट करते हैं तो कुछ अतिरिक्त मूल्य प्रदान करने का प्रयास करें। सिंटैक्टिक चीनी का थोड़ा सा यह ऐसा नहीं लगता है, आपको पता है। बस कह रहा है ... – user8371915

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^