欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
scala基礎


Seq
 trait用于表示序列。所謂序列,指的是一類(lèi)具有一定長(cháng)度的可迭代訪(fǎng)問(wèn)的對象,其中每個(gè)元素均帶有一個(gè)從0開(kāi)始計數的固定索引位置。

序列的操作有以下幾種,如下表所示:

  • 索引和長(cháng)度的操作 apply、isDefinedAt、length、indices,及l(fā)engthCompare。序列的apply操作用于索引訪(fǎng)問(wèn);因此,Seq[T]類(lèi)型的序列也是一個(gè)以單個(gè)Int(索引下標)為參數、返回值類(lèi)型為T(mén)的偏函數。換言之,Seq[T]繼承自Partial Function[Int, T]。序列各元素的索引下標從0開(kāi)始計數,最大索引下標為序列長(cháng)度減一。序列的length方法是collection的size方法的別名。lengthCompare方法可以比較兩個(gè)序列的長(cháng)度,即便其中一個(gè)序列長(cháng)度無(wú)限也可以處理。
  • 索引檢索操作(indexOf、lastIndexOf、indexofSlice、lastIndexOfSlice、indexWhere、lastIndexWhere、segmentLength、prefixLength)用于返回等于給定值或滿(mǎn)足某個(gè)謂詞的元素的索引。
  • 加法運算(+:,:+,padTo)用于在序列的前面或者后面添加一個(gè)元素并作為新序列返回。
  • 更新操作(updated,patch)用于替換原序列的某些元素并作為一個(gè)新序列返回。
  • 排序操作(sorted, sortWith, sortBy)根據不同的條件對序列元素進(jìn)行排序。
  • 反轉操作(reverse, reverseIterator, reverseMap)用于將序列中的元素以相反的順序排列。
  • 比較(startsWith, endsWith, contains, containsSlice, corresponds)用于對兩個(gè)序列進(jìn)行比較,或者在序列中查找某個(gè)元素。
  • 多集操作(intersect, diff, union, distinct)用于對兩個(gè)序列中的元素進(jìn)行類(lèi)似集合的操作,或者刪除重復元素。

如果一個(gè)序列是可變的,它提供了另一種更新序列中的元素的,但有副作用的update方法,Scala中常有這樣的語(yǔ)法,如seq(idx) = elem。它只是seq.update(idx, elem)的簡(jiǎn)寫(xiě),所以update 提供了方便的賦值語(yǔ)法。應注意update 和updated之間的差異。update 再原來(lái)基礎上更改序列中的元素,并且僅適用于可變序列。而updated 適用于所有的序列,它總是返回一個(gè)新序列,而不會(huì )修改原序列。

Seq類(lèi)的操作

WHAT IT ISWHAT IT DOES
索引和長(cháng)度 
xs(i)(或者寫(xiě)作xs apply i)。xs的第i個(gè)元素
xs isDefinedAt i測試xs.indices中是否包含i。
xs.length序列的長(cháng)度(同size)。
xs.lengthCompare ys如果xs的長(cháng)度小于ys的長(cháng)度,則返回-1。如果xs的長(cháng)度大于ys的長(cháng)度,則返回+1,如果它們長(cháng)度相等,則返回0。即使其中一個(gè)序列是無(wú)限的,也可以使用此方法。
xs.indicesxs的索引范圍,從0到xs.length - 1。
索引搜索 
xs indexOf x返回序列xs中等于x的第一個(gè)元素的索引(存在多種變體)。
xs lastIndexOf x返回序列xs中等于x的最后一個(gè)元素的索引(存在多種變體)。
xs indexOfSlice ys查找子序列ys,返回xs中匹配的第一個(gè)索引。
xs indexOfSlice ys查找子序列ys,返回xs中匹配的倒數一個(gè)索引。
xs indexWhere pxs序列中滿(mǎn)足p的第一個(gè)元素。(有多種形式)
xs segmentLength (p, i)xs中,從xs(i)開(kāi)始并滿(mǎn)足條件p的元素的最長(cháng)連續片段的長(cháng)度。
xs prefixLength pxs序列中滿(mǎn)足p條件的先頭元素的最大個(gè)數。
加法: 
x +: xs由序列xs的前方添加x所得的新序列。
xs :+ x由序列xs的后方追加x所得的新序列。
xs padTo (len, x)在xs后方追加x,直到長(cháng)度達到len后得到的序列。
更新 
xs patch (i, ys, r)將xs中第i個(gè)元素開(kāi)始的r個(gè)元素,替換為ys所得的序列。
xs updated (i, x)將xs中第i個(gè)元素替換為x后所得的xs的副本。
xs(i) = x(或寫(xiě)作 xs.update(i, x),僅適用于可變序列)將xs序列中第i個(gè)元素修改為x。
排序 
xs.sorted通過(guò)使用xs中元素類(lèi)型的標準順序,將xs元素進(jìn)行排序后得到的新序列。
xs sortWith lt將lt作為比較操作,并以此將xs中的元素進(jìn)行排序后得到的新序列。
xs sortBy f將序列xs的元素進(jìn)行排序后得到的新序列。參與比較的兩個(gè)元素各自經(jīng)f函數映射后得到一個(gè)結果,通過(guò)比較它們的結果來(lái)進(jìn)行排序。
反轉 
xs.reverse與xs序列元素順序相反的一個(gè)新序列。
xs.reverseIterator產(chǎn)生序列xs中元素的反序迭代器。
xs reverseMap f以xs的相反順序,通過(guò)f映射xs序列中的元素得到的新序列。
比較 
xs startsWith ys測試序列xs是否以序列ys開(kāi)頭(存在多種形式)。
xs endsWith ys測試序列xs是否以序列ys結束(存在多種形式)。
xs contains x測試xs序列中是否存在一個(gè)與x相等的元素。
xs containsSlice ys測試xs序列中是否存在一個(gè)與ys相同的連續子序列。
(xs corresponds ys)(p)測試序列xs與序列ys中對應的元素是否滿(mǎn)足二元的判斷式p。
多集操作 
xs intersect ys序列xs和ys的交集,并保留序列xs中的順序。
xs diff ys序列xs和ys的差集,并保留序列xs中的順序。
xs union ys并集;同xs ++ ys。
xs.distinct不含重復元素的xs的子序列。
  

特性(trait) Seq 具有兩個(gè)子特征(subtrait) LinearSeqIndexedSeq。它們不添加任何新的操作,但都提供不同的性能特點(diǎn):線(xiàn)性序列具有高效的 head 和 tail 操作,而索引序列具有高效的apply, length, 和 (如果可變) update操作。

常用線(xiàn)性序列有 scala.collection.immutable.Listscala.collection.immutable.Stream。常用索引序列有 scala.Array scala.collection.mutable.ArrayBuffer。Vector 類(lèi)提供一個(gè)在索引訪(fǎng)問(wèn)和線(xiàn)性訪(fǎng)問(wèn)之間有趣的折中。它同時(shí)具有高效的恒定時(shí)間的索引開(kāi)銷(xiāo),和恒定時(shí)間的線(xiàn)性訪(fǎng)問(wèn)開(kāi)銷(xiāo)。正因為如此,對于混合訪(fǎng)問(wèn)模式,vector是一個(gè)很好的基礎。后面將詳細介紹vector。

緩沖器

Buffers是可變序列一個(gè)重要的種類(lèi)。它們不僅允許更新現有的元素,而且允許元素的插入、移除和在buffer尾部高效地添加新元素。buffer 支持的主要新方法有:用于在尾部添加元素的 += 和 ++=;用于在前方添加元素的+=:  ++=: ;用于插入元素的 insertinsertAll;以及用于刪除元素的remove 和 -=。如下表所示。

ListBuffer和ArrayBuffer是常用的buffer實(shí)現 。顧名思義,ListBuffer依賴(lài)列表(List),支持高效地將它的元素轉換成列表。而ArrayBuffer依賴(lài)數組(Array),能快速地轉換成數組。

Buffer類(lèi)的操作

WHAT IT ISWHAT IT DOES
加法: 
buf += x將元素x追加到buffer,并將buf自身作為結果返回。
buf += (x, y, z)將給定的元素追加到buffer。
buf ++= xs將xs中的所有元素追加到buffer。
x +=: buf將元素x添加到buffer的前方。
xs ++=: buf將xs中的所有元素都添加到buffer的前方。
buf insert (i, x)將元素x插入到buffer中索引為i的位置。
buf insertAll (i, xs)將xs的所有元素都插入到buffer中索引為i的位置。
移除: 
buf -= x將元素x從buffer中移除。
buf remove i將buffer中索引為i的元素移除。
buf remove (i, n)將buffer中從索引i開(kāi)始的n個(gè)元素移除。
buf trimStart n移除buffer中的前n個(gè)元素。
buf trimEnd n移除buffer中的后n個(gè)元素。
buf.clear()移除buffer中的所有元素。
克?。?/span> 
buf.clone與buf具有相同元素的新buffer。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
memset
有趣的 Scala 語(yǔ)言: 使用遞歸的方式去思考
4 共線(xiàn)方程
Haskell教程
生信編程系列(1-2)
《源碼探秘 CPython》16. bytes 對象的行為(上)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久