出于兴趣,为什么这在Scala中有效:
val exceptions = List[Char]('+')
assertTrue(exceptions.contains('+'))
Run Code Online (Sandbox Code Playgroud)
但这不是
val exceptions = new Array[Char]('+')
assertTrue(exceptions.contains('+'))
Run Code Online (Sandbox Code Playgroud)
因为你写了新的 ArrayChar.这样做,参数是数组的大小,而不幸的是,'+'被转换为int来给出大小.返回的数组充满了Char(0).
你应该这样做Array[Char]('+'),'+'然后将是Array中的单个元素.
尝试REPL,这使答案显而易见:
scala> val exceptions = new Array[Char]('+')
exceptions: Array[Char] = Array( , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , )
Run Code Online (Sandbox Code Playgroud)
+ 有char-to-int促销.
scala> val exceptions = Array[Char]('+')
exceptions: Array[Char] = Array(+)
scala> exceptions.contains('+')
res3: Boolean = true
Run Code Online (Sandbox Code Playgroud)
是等同于List案件.
| 归档时间: |
|
| 查看次数: |
5978 次 |
| 最近记录: |