私はscalaを学んでおり、最高のトレーニングとして、古いJavaアルゴリズムを関数型プログラミングスタイルに変換しています. 次のコードがあります。
def test(originalSet: Set[Int]):Boolean = originalSet match {
case Set() => true
case x::y => false
}
このコードはリストでは正常に機能しますが、セットでは次のコンパイル エラーが発生します。
- value Set is not a case class constructor, nor does it have an unapply/unapplySeq
method
と
- constructor cannot be instantiated to expected type; found : scala.collection.immutable.::[B] required:
scala.collection.immutable.Set[Int]
- constructor cannot be instantiated to expected type; found : scala.collection.immutable.::[B] required:
scala.collection.immutable.Set[Int]
何が問題ですか?Set が空の場合をテストするにはどうすればよいですか? セットに頭と尻尾がある場合、どうすれば他のケースにできますか?