Scala语法 - 将字符串传递给对象

5

在使用Scala中的正则表达式时,我写了类似于以下内容:

scala> val y = "Foo"
y: java.lang.String = Foo

scala> y "Bar"

scala>

正如你所看到的,第二个语句只是被默默地接受了。这是一个合法的声明吗?如果是,它是做什么的?还是解析器中存在错误应该有一个错误消息?

1个回答

5

这确实是解析器中的错误。在目前的Scala 2.7.2版本(即RC6)中已经修复了此问题。

$ ./scala
Welcome to Scala version 2.7.2.RC6 (Java HotSpot(TM) Client VM, Java 1.5.0_16).
Type in expressions to have them evaluated.
Type :help for more information.
scala> def y = "foo"
y: java.lang.String

scala> y "bar"
<console>:1: error: ';' expected but string literal found.
       y "bar"
         ^

scala> val x = "foo"
x: java.lang.String = foo

scala> x "foo"
<console>:1: error: ';' expected but string literal found.
       x "foo"
         ^

scala> "foo" "bar"
<console>:1: error: ';' expected but string literal found.
       "foo" "bar"
             ^

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接