में मैं कुछ स्काला कोड जो Apache POI API का उपयोग करता लिख रहा हूँ। मैं java.util.Iterator
में निहित पंक्तियों पर फिर से शुरू करना चाहता हूं जो मुझे शीट क्लास से मिलता है। मैं इटरेटर को for each
स्टाइल लूप में उपयोग करना चाहता हूं, इसलिए मैं इसे मूल स्कैला संग्रह में बदलने की कोशिश कर रहा हूं लेकिन कोई भाग्य नहीं होगा।पुनरावृत्ति जावा से अधिक संग्रह स्काला
मैंने स्कैला रैपर कक्षाओं/लक्षणों को देखा है, लेकिन मैं नहीं देख सकता कि उन्हें सही तरीके से कैसे उपयोग किया जाए। मैं verbose while(hasNext()) getNext()
लूप की शैली का उपयोग किए बिना स्कैला में जावा संग्रह पर कैसे पुन: प्रयास करूं?
class IteratorWrapper[A](iter:java.util.Iterator[A])
{
def foreach(f: A => Unit): Unit = {
while(iter.hasNext){
f(iter.next)
}
}
}
object SpreadsheetParser extends Application
{
implicit def iteratorToWrapper[T](iter:java.util.Iterator[T]):IteratorWrapper[T] = new IteratorWrapper[T](iter)
override def main(args:Array[String]):Unit =
{
val ios = new FileInputStream("assets/data.xls")
val workbook = new HSSFWorkbook(ios)
var sheet = workbook.getSheetAt(0)
var rows = sheet.rowIterator()
for (val row <- rows){
println(row)
}
}
}
मैं (वैल पंक्ति के लिए लाइन "शामिल करने के लिए नहीं कर पा रहे <- पंक्तियां) {"पार्सर सोचने के बिना '<' वर्ण एक एक्सएमएल समापन टैग है? बैकटिक्स –
काम नहीं करते हैं, आपको इटरैटिरवापर में निहित रूप से परिवर्तित करने में सक्षम होना चाहिए, जिससे आप सिंटैक्स का एक उचित हिस्सा बचा सकते हैं। स्कैला में निहित रूपांतरण के लिए Google। –