彼らは同じものを指し、まだ私は2種類のタグを比較する場合:スカラーで、マップ[_、_]とscala.collection.immutable.Map [_、_]はどのように異なるタイプタグを持っていますか?
val ttg1 = typeTag[Map[_,_]]
val ttg2 = typeTag[immutable.Map[_,_]]
assert(ttg1.tpe == ttg2.tpe)
を私が得た:
Map[_, _] did not equal scala.collection.immutable.Map[_,_]
ScalaTestFailureLocation:
Expected :scala.collection.immutable.Map[_,_]
Actual :Map[_, _]
どのようにこれは型付けされた言語で起こるだろうか?どうすればそれらを同一にすることができますか?
UPDATE:一覧については、これはもっと混乱して:
val ttg1 = typeTag[List[_]]
val ttg2 = typeTag[immutable.List[_]]
assert(ttg1.tpe == ttg2.tpe)
List[_] did not equal List[_]
ScalaTestFailureLocation:
Expected :List[_]
Actual :List[_]
彼らはまったく同じことです!しかし、反射はそれを無視することを選択します。
あなたは 'scala.collection._'を少しでもインポートしていますか? – Dima
@Dima私は 'scala.collection.immutable'をインポートしました、ごめんなさいインポートをコピーするのを忘れましたが、あなたは私のポイントを得ました – tribbloid