我希望得到一個Seq
的第n個元素,像這樣:如何獲得Seq的第n個元素?
val mySeq = Seq("A", "B", "C")
mySeq.get(1) // Java syntax for List. This does not work.
我希望得到一個Seq
的第n個元素,像這樣:如何獲得Seq的第n個元素?
val mySeq = Seq("A", "B", "C")
mySeq.get(1) // Java syntax for List. This does not work.
mySeq.apply(1)
是另一種說法mySeq(1)
scala> val mySeq = Seq("A", "B", "C")
mySeq: Seq[String] = List(A, B, C)
scala> mySeq(0)
res0: String = A
scala> mySeq(1)
res1: String = B
請注意,'apply'語法的縮寫與通常用於訪問Scala中數組* nnth *元素的語法相同。這給了我們序列和數組之間的一個很好的對稱性。例如'val mySum = mySeq(0)+ myArray(0)' – DaoWen
獲得Seq
的ñ個元素的方法是apply
:
val mySeq = Seq("A", "B", "C")
mySeq.apply(1) // "B"
通常你永遠寫x.apply(y)
,只需使用簡寫x(y)
。 Scala編譯器會爲你轉換它。
mySeq(1) // "B"
爲了避免索引越界,
scala> mySeq(200)
java.lang.IndexOutOfBoundsException: 200
at scala.collection.LinearSeqOptimized$class.apply(LinearSeqOptimized.scala:65)
at scala.collection.immutable.List.apply(List.scala:84)
... 33 elided
電梯的順序,
mySeq.lift(2)
Some(C)
mySeq.lift(200)
None
或在SI milar方式,
mySeq.drop(2).headOption
Some(C)
mySeq.drop(200).headOption
None
通過擡起序列我們定義從Int
部分功能到序列的每個值。即從每個位置索引到其對應的值。因此未定義的位置(任何負值或大於集合的大小)被映射到None
,其餘的被定義並且變成Some
值。
爲了將來的參考,你可以找到'Seq' [這裏](http://www.scala-lang.org/api/current/#scala.collection.Seq)的API文檔。 –
啊是的。那就是我最終找到答案的地方。 –