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