के लिए परीक्षण मैं बाहरी डेटा स्टोर से एक्सएमएल प्रतिक्रियाओं की एक श्रृंखला को पार्स कर रहा हूं। जिसके दौरान मुझे एक बच्चे नोड के अस्तित्व के लिए परीक्षण करना चाहिए और - यदि यह मौजूद है - इसके मूल्य का परीक्षण करें। प्राप्त करने के लिए कि मैं निम्नलिखित कोड है:स्कैला एक्सएमएल: नोड अस्तित्व और मूल्य
...
val properties = for {
val row <- root \\ "ResultDescription"
val cond:Boolean = checkDetectionNode(row) match {
case Some(nodeseq) => {
val txt = nodeseq.text.toLowerCase
if (txt contains "non-detect")
false
else
true
}
case None => true
}
if (cond)
val name = (row \ "CharacteristicName").text
if (charNameList.exists(s => s == name) == false)
} yield {
getObservedProperty(name) match {
case Some(property) => {
charNameList = name :: charNameList
property
}
}
}
...
checkDetectionNode इस तरह के रूप में परिभाषित किया जाता है:
private def checkDetectionNode(row: scala.xml.NodeSeq) : Option[scala.xml.NodeSeq] = {
if ((row \ "ResultDetectionConditionText") != null)
Some[scala.xml.NodeSeq]((row \ "ResultDetectionConditionText"))
else
None
}
val name...
लाइन पर "सरल अभिव्यक्ति के अवैध शुरुआत" की एक अनिर्दिष्ट त्रुटि में उपरोक्त कोड का परिणाम है। ईमानदार होने के लिए मैं एक स्कैला प्रोग्रामर या यहां तक कि एक कार्यात्मक प्रोग्रामर नहीं हूं (हमेशा ओओ/अनिवार्य के लिए अधिक आंशिक था)। मैं केवल कुछ दिनों के लिए स्कैला का उपयोग कर रहा हूं और जावा और लैम्ब्डा ऑपरेटरों से जो कुछ जानता हूं, उसके आधार पर। दुर्भाग्य से, मेरे पास वास्तव में बैठने का समय नहीं है और वास्तव में स्कैला सीखना पसंद है जैसा मैं चाहता हूं। समय सीमा, हम सभी को मूर्ख बनाओ।
मुझे आशा है कि कोई भी एक नज़र डालें और मुझे कुछ बताएं कि क्या कुछ गलत है (जैसा कि मुझे यकीन है)। मैंने दिखाए गए कोड को सीमित करने की कोशिश की, जो मुझे आशा है, सवाल के लिए प्रासंगिक है। हालांकि, अगर कोई अतिरिक्त कोड की आवश्यकता है तो कृपया मुझे बताएं।
धन्यवाद
मुझे लगता है कि मुझे यह स्पष्ट करना चाहिए कि उपर्युक्त बयान के लिए समझ का हिस्सा है। 'अगर (cond) 'उपज ब्लॉक के निष्पादन को निर्धारित करने के लिए माना जाता है। मैंने कोड पर विस्तृत जानकारी के लिए अपना उत्तर संपादित कर लिया है। संक्षिप्त प्रतिक्रिया के लिए – Cowan