3

私はセットについて学ぶscalaの新しい学習者です。パラメータをセットに追加して、関数から返したいです。

def singleElementSet(elem: Int): Set ={
    var newSet = Set()
    newSet+= elem
  }

これを試しましたが、次のようなエラーが発生します。

type Set takes type parameters
- type Set takes type parameters

エレムのために

type mismatch;  found   : elem.type (with underlying type Int)  required: Nothing
4

2 に答える 2

3

例では Set[Int] によって Set に含まれるものを定義する必要があります。新しいセットを作成するときは、次のようにタイプを指定する必要があります。

val newSet = Set.empty[Int]

または何かで Set を初期化します。

val newSet = Set(1)

ただし、多くのことを達成するには、おそらく var または変更可能な Set を使用する必要があります。たとえば、コードは次のようになります。

var newSet = Set.empty[Int]
def singleElementSet(elem: Int): Set[Int] = {
    newSet+= elem
}

(メソッドを呼び出すたびに Set を空の Set として定義することはできません。そうしないと、結果が加算されません)

于 2012-10-04T19:55:50.330 に答える
2

I think what you want is something like

def singleElementSet(elem: Int): Set[Int] = {
    val newSet = Set.empty[Int]
    newSet + elem
}

or you could just create the set directly

def singleElementSet(elem: Int) = Set(elem)
于 2012-10-07T23:37:17.437 に答える