6
出于兴趣,为什么在斯卡拉做这项工作:斯卡拉列表包含VS数组包含
val exceptions = List[Char]('+')
assertTrue(exceptions.contains('+'))
但这不
val exceptions = new Array[Char]('+')
assertTrue(exceptions.contains('+'))
出于兴趣,为什么在斯卡拉做这项工作:斯卡拉列表包含VS数组包含
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(, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , )
+
有焦炭到INT推广。
scala> val exceptions = Array[Char]('+')
exceptions: Array[Char] = Array(+)
scala> exceptions.contains('+')
res3: Boolean = true
相当于List
的情况。
这将是一个伟大的Scala Puzzler! – soc 2012-08-07 23:01:11