小编mrg*_*mrg的帖子

scala 2.9 REPL的settings.maxPrintString

我想在Scala REPL中禁用截断字符串值.

以下线程建议输入settings.maxPrintString = 0:

如何强制解释器显示完整的堆栈跟踪?

不幸的是,这似乎不适用于Scala 2.9:

Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_29).
Type in expressions to have them evaluated.
Type :help for more information.

scala> settings.maxPrintString = 0
<console>:10: error: not found: value settings
val $ires0 = settings.maxPrintString
             ^
<console>:7: error: not found: value settings
       settings.maxPrintString = 0
       ^
Run Code Online (Sandbox Code Playgroud)

我需要导入一些东西吗?

我尝试了:power,这是settings可用的,但它似乎不支持maxPrintString:

scala> :power
** Power User mode enabled - BEEP BOOP SPIZ **
** …
Run Code Online (Sandbox Code Playgroud)

scala read-eval-print-loop

15
推荐指数
1
解决办法
3361
查看次数

Scala Set.contains不会给出预期的类型不匹配错误

我是Scala的新手,我很难理解为什么我在提供错误的参数时有时不会出现类型错误 Set.contains

这是使用REPL(2.9.1.final)的快速示例:

scala> val baz = Map("one" -> 1, "two" -> 2)
baz: scala.collection.immutable.Map[java.lang.String,Int] = Map(one -> 1, two -> 2)

scala> baz.values.toSet.contains("asdf")
res3: Boolean = false
Run Code Online (Sandbox Code Playgroud)

为什么我没有在那里出现类型不匹配?

如果我分配baz.values.toSet到另一个val,并调用contains上,我得到的类型检查:

scala> val bling = baz.values.toSet
bling: scala.collection.immutable.Set[Int] = Set(1, 2)

scala> bling.contains("asdf")
<console>:10: error: type mismatch;
 found   : java.lang.String("asdf")
 required: Int
              bling.contains("asdf")
                             ^
Run Code Online (Sandbox Code Playgroud)

愚蠢的错误,语言微妙或编译错误?

scala type-conversion

7
推荐指数
1
解决办法
1027
查看次数