第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

‘:*’(冒號下劃線星號)在Scala中做什么?

‘:*’(冒號下劃線星號)在Scala中做什么?

‘:*’(冒號下劃線星號)在Scala中做什么?我有以下代碼這個問題:def addChild(n: Node, newChild: Node) = n match {   case Elem(prefix, label, attribs, scope, child @ _*) => Elem(prefix, label, attribs, scope, child ++ newChild : _*)   case _ => error("Can only add children to elements!")}里面的一切都很清楚,除了這段:child ++ newChild : _*是干什么的呢?我知道有Seq[Node]連在一起Node然后呢?什么: _*做?
查看完整描述

3 回答

?
一只甜甜圈

TA貢獻1836條經(jīng)驗 獲得超5個贊

它“碎裂”1序列。

查看構造函數(shù)簽名

new Elem(prefix: String, label: String, attributes: MetaData, scope: NamespaceBinding,
         child: Node*)

被稱為

new Elem(prefix, label, attributes, scope,
         child1, child2, ... childN)

但這里只有一個序列child1child2等等,這樣就允許將結果序列用作構造函數(shù)的輸入。

編碼愉快。


1這沒有一個可愛的名字在補充,但以下是細節(jié)。重要的是,它改變了Scala用重復的參數(shù)將參數(shù)綁定到方法的方式(如Node*(見上文)。

這個_*類型注釋包括在補充勞工計劃的“4.6.2重復參數(shù)”中。

參數(shù)部分的最后一個值參數(shù)可以是由“*”(例如(.,x:t*)連接的?)。方法中這種重復參數(shù)的類型是序列類型Scala.Seq[T]。方法具有重復參數(shù)T*的變量數(shù)為T型。也就是說,如果方法m具有類型(p1:t1),則為。....,pn:TN,PS:S*)U被應用于參數(shù)(E1,。....,ek)其中k>=n,則該應用程序中的m具有類型(p1:t1,。....,pn:TN,PS:S.....,ps0S)U,類型S的k‘n出現(xiàn),其中超過ps的任何參數(shù)名稱都是新的。這個規(guī)則的唯一例外是,如果最后一個參數(shù)通過_*類型注釋被標記為序列參數(shù)。如果上面的m被應用于參數(shù)(E1,。....,en,e0:*),則該應用程序中的m類型為(p1:t1,。....,pn:TN,PS:scala.Seq[S])


查看完整回答
反對 回復 2019-06-29
?
UYOU

TA貢獻1878條經(jīng)驗 獲得超4個贊

  • child ++ newChild

    -序列
  • :

    -類型歸屬,幫助編譯器理解的提示,該表達式具有什么類型?
  • _*

    -接受任何值+vararg運算符的占位符

child ++ newChild : _*膨脹Seq[Node]Node*(告訴編譯器我們使用的是varargs,而不是序列)。對于只能接受varargs的方法特別有用。


查看完整回答
反對 回復 2019-06-29
?
精慕HU

TA貢獻1845條經(jīng)驗 獲得超8個贊

以上所有的答案看起來都很棒,但只是需要一個樣本來解釋這一點。下面是:

val x : Seq[Seq[Int]] = Seq(Seq(1),Seq(2))def f(arg: Seq[Any]*) : Int = {
 arg.length}f(x) //1 as x is taken as single argf(x:_*)  // 2 as x is "unpacked" as a Seq[Any]*

所以現(xiàn)在我們知道了:_*這是為了告訴編譯器:請解壓縮這個參數(shù),并將這些元素綁定到函數(shù)調(diào)用中的vararg參數(shù),而不是將x作為一個參數(shù)。

所以簡單地說,:_*是在將參數(shù)傳遞給vararg參數(shù)時消除歧義。


查看完整回答
反對 回復 2019-06-29
  • 3 回答
  • 0 關注
  • 848 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號