興味深いことに、これが Scala で機能する理由は次のとおりです。
val exceptions = List[Char]('+')
assertTrue(exceptions.contains('+'))
しかし、これはそうではありません
val exceptions = new Array[Char]('+')
assertTrue(exceptions.contains('+'))
興味深いことに、これが Scala で機能する理由は次のとおりです。
val exceptions = List[Char]('+')
assertTrue(exceptions.contains('+'))
しかし、これはそうではありません
val exceptions = new Array[Char]('+')
assertTrue(exceptions.contains('+'))
あなたが新しいArrayCharを書いたからです。そうすることで、引数は配列のサイズになり、'+' は残念ながらサイズを与えるために int に変換されます。そして、返された配列は Char(0) でいっぱいです。
するだけで、配列内の単一の要素になりますArray[Char]('+')
。'+'
REPL を試してみてください。答えは明らかです。
scala> val exceptions = new Array[Char]('+')
exceptions: Array[Char] = Array( , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , )
+
char から int への昇格があります。
scala> val exceptions = Array[Char]('+')
exceptions: Array[Char] = Array(+)
scala> exceptions.contains('+')
res3: Boolean = true
ケースと同等List
です。