scala> //PS:104 //convertToStr() : Method that takes a type parameter to convert a Sequence to String scala> def convertToStr[T](seq: Seq[T]):String = { | seq match { | // Note 1 : Although a Sequence has 'head' & 'tail' methods | // here 'head' & 'tail' are considered as variable names | // Note 2 : '+:' is called as 'cons'(Construction) Operator | case head +: tail => s"$head +: " + convertToStr(tail) | | // Nil is a Special Object that represents an Empty Sequence | case Nil => "Nil" | } | } convertToStr: [T](seq: Seq[T])String scala> scala> val seq1 = Seq('a', 'b', 'c') seq1: Seq[Char] = List(a, b, c) scala> val seq2 = Seq.empty[Char] seq2: Seq[Char] = List() scala> val ls1 = List('d', 'e', 'f') ls1: List[Char] = List(d, e, f) scala> val ls2 = List.empty[Char] ls2: List[Char] = List() scala> scala> for (seq <- Seq(seq1, seq2, ls1, ls2)) { | println(convertToStr(seq)) | } a +: b +: c +: Nil Nil d +: e +: f +: Nil Nil
Pattern Matching on Sequence
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment