我想在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的新手,我很难理解为什么我在提供错误的参数时有时不会出现类型错误 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)
愚蠢的错误,语言微妙或编译错误?