2013-09-21 5 views
5

का उपयोग करके सूची में पहला तत्व मुद्रित करें मैं स्कैला का उपयोग करके सूची में पहला तत्व कैसे मुद्रित कर सकता हूं?स्कैला

अजगर में उदाहरण के लिए मैं सिर्फ लिख सकते हैं:

>>>l = [1,2,3,4] 
>>>one = l[0] 
>>>print one 

मैं कैसे कर सकते हैं कि स्काला

पर

धन्यवाद।

उत्तर

9

रूप Hiura ने कहा, या इस तरह:

object ListDemo extends App { 
    val lst = List(1, 2, 3) 
    println(lst(0)) // Prints specific value. In this case 1. 
        // Number at 0 position. 
    println(lst(1)) // Prints 2. 
    println(lst(2)) // Prints 3. 
} 
9

मूल रूप से, अपने अजगर कोड के बराबर है: (। स्केला दुभाषिया में चलाएँ)

scala> val l = 1 :: 2 :: 3 :: 4 :: Nil 
l: List[Int] = List(1, 2, 3, 4) 

scala> val one = l.head 
one: Int = 1 

scala> println(one) 
1 

Here स्काला की सूची के बारे में दस्तावेज़ है।


इसे सहायक प्रश्न के रूप में पूछा गया था «मैं प्रत्येक तत्व को कैसे प्रदर्शित करूं?»। ,

scala> def recPrint(xs: List[Int]) { 
    | xs match { 
    |  case Nil => // nothing else to do 
    |  case head :: tail => 
    |   println(head) 
    |   recPrint(tail) 
    | }} 
recPrint: (xs: List[Int])Unit 

scala> recPrint(l) 
1 
2 
3 
4 

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

यहाँ एक पुनरावर्ती कार्यान्वयन का उपयोग पैटर्न मिलान है List के i-th तत्व तक पहुंचने से ओ (एन) लगता है।

+0

हाँ में पाया जा सकता है, लेकिन मैं कैसे सूची में दूसरे या तीसरे तत्व मुद्रित कर सकते हैं? –

+0

ठीक है, कि एक और सवाल ;-) आप 'apply' विधि (Brano88 के जवाब में की तरह) उपयोग कर सकते हैं, या सूची की पूंछ पर recurse था। – Hiura

+3

यदि आप सूची से सिर तक पूंछ को पार कर सकते हैं, तो फिर से रिकर्स करें। यदि नहीं, तो आप त्रुटियों के लिए ओ (एन) लागू होने के रूप में गलत डेटा संरचना का उपयोग कर रहे हैं। इसके बजाय वेक्टर या ऐरे का प्रयोग करें। –