Adding an item to an immutable Seq

后端 未结 1 807
野的像风
野的像风 2021-02-02 05:43

Say, I have a sequence of strings as an input and I want to get a new immutable Seq which consists of elements of the input and an item \"c\". Here are

相关标签:
1条回答
  • 2021-02-02 05:59

    Use the :+ (append) operator to create a new Seq using:

    val seq = Seq("a", "b") :+ "c"
    // seq is now ("a","b","c")
    

    Note: :+ will create a new Seq object. If you have

    val mySeq = Seq("a","b")
    

    and you will call

    mySeq :+ "c"
    

    mySeq will still be ("a","b")

    Note that some implementations of Seq are more suitable for appending than others. List is optimised for prepending. Vector has fast append and prepend operations.

    ::: is a method on List which requires another List as its parameter - what are the advantages that you see in it accepting other types of sequence? It would have to convert other types to a List. If you know that List is efficient for your use case then use ::: (if you must). If you want polymorphic behaviour then use the generic ++.

    There's no instantiation overhead to using Nil; you don't instantiate it because it's a singleton.

    0 讨论(0)
提交回复
热议问题