日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

scala编程第16章学习笔记(1)

發布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 scala编程第16章学习笔记(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

List列表的基本操作

head方法獲得列表的第一個元素

tail方法獲得列表除第一個元素之外的其它元素

isEmpty:判斷列表是否為空,空的話返回真

last:獲得列表最后一個元素

init:獲得除最后一個元素之外的元素

reverse:反轉列表

前綴與后綴:drop、take、splitAt

xs take n 返回xs列表的前n個元素,如果n大于xs.length,則返回整個xs。

xs drop n 返回xs列表除前n個元素之外的所有元素,如果n大于xs.length,則返回空列表。

splitAt操作在指定位置拆分列表,并返回對偶列表。

xs splitAt n等價于(xs take n, xs drop n)

例子如下:

scala> List(1, 2, 3, 4, 5) take 2 res2: List[Int] = List(1, 2)scala> List(1, 2, 3, 4, 5) drop 2 res3: List[Int] = List(3, 4, 5)scala> List(1, 2, 3, 4, 5) splitAt 2 res4: (List[Int], List[Int]) = (List(1, 2),List(3, 4, 5))

元素選擇:apply方法和indices方法
apply方法實現了隨機元素的選擇,與其它類型一樣,當對象出現在應該是方法調用的函數位置上時,就會隱式地插入apply方法

scala> val abcde=List('a' ,'b', 'c', 'd', 'e') abcde: List[Char] = List(a, b, c, d, e)scala> abcde apply 2 res7: Char = cscala> abcde(2) res8: Char = c

xs apply n 等價于 (xs drop n).head
indices方法可以返回指定列表的所有有效索引值組成的類表:

scala> abcde.indices res9: scala.collection.immutable.Range = Range(0, 1, 2, 3, 4)

嚙合列表:zip

zip操作可以把兩個列表組成一個對偶列表:

scala> abcde.indices zip abcde res10: scala.collection.immutable.IndexedSeq[(Int, Char)] = Vector((0,a), (1,b),(2,c), (3,d), (4,e))

如果兩個列表的長度不一致,那么任何不能匹配的元素將被丟掉:

scala> abcde zip List(1, 2, 3) res11: List[(Char, Int)] = List((a,1), (b,2), (c,3))

zipWithIndex把列表元素與索引值嚙合在一起

scala> abcde.zipWithIndex res12: List[(Char, Int)] = List((a,0), (b,1), (c,2), (d,3), (e,4))

顯示列表:toString方法和mkString方法

toString操作返回列表的標準字符串表達形式:

scala> abcde.toString res13: String = List(a, b, c, d, e)

如果需要其他表達形式,可以使用mkString方法。xs mkString(pre, sep, post)
其中pre是需要在顯示的元素之前的前綴字符串,sep為兩個元素之間的分割字符串,post為顯示在最后面的后綴字符串。

xs.mkString 等價于 xs mkString("", sep, "")

xs.mkString 等價于 xs mkString ""

scala> abcde mkString ("[", ",", "]") res15: String = [a,b,c,d,e]scala> abcde mkString "" res17: String = abcdescala> abcde.mkString res19: String = abcdescala> abcde mkString ("List(", ", ", ")") res20: String = List(a, b, c, d, e)

mkString方法還有名為addString的變體,它可以把構建好的字符串添加到StringBuilder對象中,而不是作為結果返回:

scala> val buf = new StringBuilder buf: StringBuilder =scala> abcde addString (buf, "(", ";", ")") res21: StringBuilder = (a;b;c;d;e)

mkString和addString方法都繼承自List的超特質Iterable,因此他們可以應用到各種可枚舉的集合類上。

?

總結

以上是生活随笔為你收集整理的scala编程第16章学习笔记(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。