سؤال

وحين لعب حولها مع regexps في سكالا كتبت شيئا من هذا القبيل:

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

scala> y "Bar"

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"
             ^
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top