なぜmutable.Set.empty ++ = ++ではなくtreeSetなのですか?

スージンパーク

「Scala3 / eでのプログラミング」という本を読んでいるときに、私は次の質問に陥りました。

まず、この本では、不変のセットから可変のセットを作成するには、次のようにコードを記述すると説明されています。

scala> import scala.collections.immutable.TreeSet
scala> val colors = List("blue", "green", "red")
scala> val treeSet = TreeSet(colors)
scala> val mutaSet = mutable.Set.empty ++= treeSet
    -> mutaSet: scala.collection.mutable.Set[String] =
       Set(red, blue, green, yellow)
scala> val immutaSet = Set.empty ++ mutaSet
    -> immutaSet: scala.collection.immutable.Set[String] =
       Set(red, blue, green, yellow)

私が理解できないのは++=、次の行のメソッドの使用です

val mutaSet = mutable.Set.empty ++= treeSet

よるとScalaの参照、それは我々が書くときと言うxs ++= ys、それはすべての要素追加ysへのxsの値を返すxs、つまり私たちが呼ぶ副作用がある++=方法は。

ただし、この説明が有効であるmutable.Set.emptyためには、左辺値か何かである必要があります。つまり、定数値ではありません。しかし、私はそうは思いません。

なぜ私たちmutable.Set.empty ++= treeSetが有効な表現であるのか誰かが説明できますか?

アレクセイロマノフ

xs ++ = ysと書くと、ysのすべての要素がxsに追加され、xsの値が返されると書かれています。

++=メソッドがある場合は、このメソッドを呼び出すだけです。そして、そのような方法があるcollection.mutable.Setので、それがここで起こることです

そのようなメソッドがない場合は、xs実際に変数である必要があります(ただし、「の値を返すxs」は「結果をに割り当てる」に置き換える必要がありますxs)。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JavaがArrayList <TreeSet <Integer >>をList <Set <Object >>に変換できないのはなぜですか?

分類Dev

std :: unordered_set :: load_factor、なぜdoubleではなくfloatなのですか?

分類Dev

empty()がstdClassで機能しないのはなぜですか

分類Dev

String.EmptyのようなChar.Emptyがないのはなぜですか?

分類Dev

JavaにString.Emptyがないのはなぜですか?

分類Dev

jQuery emptyが機能しないのはなぜですか?

分類Dev

C ++:iter ++-> empty()が合法なのはなぜですか?

分類Dev

Rubyで `instance_variable_set`が必要なのはなぜですか?

分類Dev

EnumMap <T> .keySet()がEnumSet <T>()ではなくSet <T>()を返すのはなぜですか?

分類Dev

set / get_default_resourceが参照ではなくポインタを使用するのはなぜですか?

分類Dev

Data.SetがtoListだけでなく要素も提供するのはなぜですか?

分類Dev

単一のSETクエリといくつかの適切な個別のSETクエリが同等ではないのはなぜですか?

分類Dev

`set / A`の式で-2147483648を直接使用できないのはなぜですか?

分類Dev

TreeSet IterationがO(n * logn)ではなくO(n)になるのはなぜですか?

分類Dev

TreeSet.contains()が機能しないのはなぜですか?

分類Dev

if(empty($ _ SESSION ['username'] ['password']))が機能しないのはなぜですか?

分類Dev

set(c ++)のイテレータが正しく動作しないのはなぜですか?

分類Dev

flat_setとflat_mapがContiguousRangeではないのはなぜですか?

分類Dev

Redis 'Zset'が 'Sorted Set'を意味するのはなぜですか?

分類Dev

Powershellをset-executionpolicyremotesignedに設定できないのはなぜですか?

分類Dev

なぜprivate(set)がSwiftで機能しないのですか?

分類Dev

Enumerable.Empty()が空の配列を返すのはなぜですか?

分類Dev

vector :: iteratorとset :: iteratorの動作が異なるのはなぜですか?

分類Dev

mutisetがsetのように動作しないのはなぜですか

分類Dev

TreeSetがClassCastExceptionをスローするのはなぜですか?

分類Dev

set()の{}、set()の[]、{}のset()、{}の[]、または{}の{}とは異なり、set()のset()がTypeErrorを発生させないのはなぜですか?

分類Dev

ScalaのStream.emptyでパターンマッチングできないのはなぜですか?

分類Dev

Set.emptyでの一致は、 "" .split( "、")。toSet(PartialFunction)とは異なる動作をします。

分類Dev

unordered_setの代わりにsetを使用するのはなぜですか?

Related 関連記事

  1. 1

    JavaがArrayList <TreeSet <Integer >>をList <Set <Object >>に変換できないのはなぜですか?

  2. 2

    std :: unordered_set :: load_factor、なぜdoubleではなくfloatなのですか?

  3. 3

    empty()がstdClassで機能しないのはなぜですか

  4. 4

    String.EmptyのようなChar.Emptyがないのはなぜですか?

  5. 5

    JavaにString.Emptyがないのはなぜですか?

  6. 6

    jQuery emptyが機能しないのはなぜですか?

  7. 7

    C ++:iter ++-> empty()が合法なのはなぜですか?

  8. 8

    Rubyで `instance_variable_set`が必要なのはなぜですか?

  9. 9

    EnumMap <T> .keySet()がEnumSet <T>()ではなくSet <T>()を返すのはなぜですか?

  10. 10

    set / get_default_resourceが参照ではなくポインタを使用するのはなぜですか?

  11. 11

    Data.SetがtoListだけでなく要素も提供するのはなぜですか?

  12. 12

    単一のSETクエリといくつかの適切な個別のSETクエリが同等ではないのはなぜですか?

  13. 13

    `set / A`の式で-2147483648を直接使用できないのはなぜですか?

  14. 14

    TreeSet IterationがO(n * logn)ではなくO(n)になるのはなぜですか?

  15. 15

    TreeSet.contains()が機能しないのはなぜですか?

  16. 16

    if(empty($ _ SESSION ['username'] ['password']))が機能しないのはなぜですか?

  17. 17

    set(c ++)のイテレータが正しく動作しないのはなぜですか?

  18. 18

    flat_setとflat_mapがContiguousRangeではないのはなぜですか?

  19. 19

    Redis 'Zset'が 'Sorted Set'を意味するのはなぜですか?

  20. 20

    Powershellをset-executionpolicyremotesignedに設定できないのはなぜですか?

  21. 21

    なぜprivate(set)がSwiftで機能しないのですか?

  22. 22

    Enumerable.Empty()が空の配列を返すのはなぜですか?

  23. 23

    vector :: iteratorとset :: iteratorの動作が異なるのはなぜですか?

  24. 24

    mutisetがsetのように動作しないのはなぜですか

  25. 25

    TreeSetがClassCastExceptionをスローするのはなぜですか?

  26. 26

    set()の{}、set()の[]、{}のset()、{}の[]、または{}の{}とは異なり、set()のset()がTypeErrorを発生させないのはなぜですか?

  27. 27

    ScalaのStream.emptyでパターンマッチングできないのはなぜですか?

  28. 28

    Set.emptyでの一致は、 "" .split( "、")。toSet(PartialFunction)とは異なる動作をします。

  29. 29

    unordered_setの代わりにsetを使用するのはなぜですか?

ホットタグ

アーカイブ