2008-11-02 27 views
5

Trong khi chơi đùa với regexps trong Scala tôi đã viết một cái gì đó như thế này:Scala cú pháp - vượt qua chuỗi phản đối

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

scala> y "Bar" 

scala> 

Như bạn thấy, báo cáo kết quả thứ hai được chỉ âm thầm chấp nhận. Đây có phải là một tuyên bố pháp lý, và nếu có, nó sẽ làm gì? Hay nó là một lỗi trong trình phân tích cú pháp và phải có thông báo lỗi?

Trả lời

5

Đây thực sự là lỗi trong trình phân tích cú pháp. Nó được sửa trong scala 2.7.2 (hiện tại là 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" 
      ^
Các vấn đề liên quan