سكالا جملة - تمرير سلسلة الاعتراض
سؤال
وحين لعب حولها مع 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"
^
لا تنتمي إلى StackOverflow