Theo như tôi thấy từ các tài liệu, các nhóm không bắt được xác định bởi (:?), Như trong Java. (Tôi tin rằng đó là cùng một thư viện cơ bản).Có thể làm cho các nhóm không bắt giữ hoạt động trong các quy trình scala khi mô hình phù hợp với
Tuy nhiên, điều này dường như không làm việc:
var R = "a(:?b)c".r
R.findFirstMatchIn("abc").get.group(1)
lợi nhuận "b" (khi nó phải được trống). Tôi nghi ngờ đây không phải là bình thường một vấn đề, nhưng khi thực hiện mô hình kết hợp, nó có nghĩa là tôi không thể bây giờ làm:
"abc" match {case R => println("ok");case _ => println("not ok")}
> not ok
tôi phải làm:
"abc" match {case R(x) => println("ok");case _ => println("not ok")}
> ok
Có cách nào để làm cho công việc này "như mong đợi"?
Điều đó thật tuyệt - yêu thích phong cách _ *. (bằng cách sử dụng var và thả parens là những sai lầm trong việc đưa ra một ví dụ kinh điển. Xin lỗi!) –