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 2res2: list[int] = list(1, 2)scala> list(1, 2, 3, 4, 5) drop 2res3: list[int] = list(3, 4, 5)
scala> list(1, 2, 3, 4, 5) splitat 2res4: (list[int], list[int]) = (list(1, 2),list(3, 4, 5))
scala> val abcde=list('a' ,'b', 'c', 'd', 'e')abcde: list[char] =list(a, b, c, d, e)
scala> abcde(2)
res8: char = c
scala>abcde.indicesres9: scala.collection.immutable.range = range(0, 1, 2, 3, 4)
嚙合列表:zip
zip操作可以把兩個列表組成乙個對偶列表:
scala>abcde.indices zip abcderes10: 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.zipwithindexres12: list[(char, int)] = list((a,0), (b,1), (c,2), (d,3), (e,4))
顯示列表:tostring方法和mkstring方法
tostring操作返回列表的標準字串表達形式:
scala>abcde.tostringres13: 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 =abcde
scala>abcde.mkstring
res19: string =abcde
scala> abcde mkstring ("list(", ", ", ")")
res20: string = list(a, b, c, d, e)
mkstring方法還有名為addstring的變體,它可以把構建好的字串新增到stringbuilder物件中,而不是作為結果返回:
scala> val buf = newstringbuilder
buf: stringbuilder =scala> abcde addstring (buf, "(", ";", ")")
res21: stringbuilder = (a;b;c;d;e)
mkstring和addstring方法都繼承自list的超特質iterable,因此他們可以應用到各種可列舉的集合類上。
《快學Scala》學習筆記 第16章 XML處理
這是一篇 快學scala 的讀書筆記,需要具備scala語言的基礎,歡迎讀者與我一起 或者教我新知識呀 scala對xml有內建支援,直接用xml 就行 import scala.xml.elem import scala.xml.nodebuffer val doc elem fred stitl...
第16章 網路程式設計
網路通訊協議 計算機網路中實現通訊必須有一些約定,即通訊協議,對速率 傳輸 結構 傳輸控制步驟 出錯控制等制定標準。通訊協議分層的思想 由於結點之間聯絡很複雜,在制定協議時,把複雜成份分解成一些簡單的成份,再將它們復合起來。最常用的復合方式是層次方式,即同層間可以通訊 上一層可以呼叫下一層,而與再下...
第16章 網路程式設計
利用套接字 socket 開發網路應用程式早已被廣泛的採用,以至於成為事實上的標準。通訊的兩端都要有socket,是兩台機器間通訊的端點 網路通訊其實就是socket間的通訊。socket允許程式把網路連線當成乙個流,資料在兩個socket間通過io傳輸。一般主動發起通訊的應用程式屬客戶端,等待通訊...