xem xét mã này:Làm thế nào để khởi tạo các lớp bên trong trong một bước trong Scala?
class Outer {
class Inner
}
Trong Java nó sẽ có thể để tạo ra một thể hiện của Inner
với:
Outer.Inner inner = new Outer().new Inner();
Tôi biết tôi có thể viết những dòng này trong Scala:
val outer = new Outer
val inner = new outer.Inner
Nhưng tôi tự hỏi nếu nó có thể thể hiện giống nhau mà không có sự phân công để outer
.
Cả
new Outer.new Inner
và
new (new Outer).Inner
không được chấp nhận bởi trình biên dịch.
Có điều gì tôi thiếu không?
Ah mẹo 'áp dụng' rất thú vị. Tôi ít quan tâm đến cú pháp, e. g. nếu điều này thực sự là một cái gì đó không thể trong Scala ... Tôi đoán điều này giống như hạn chế của PHP mà các phần tử mảng cần được chỉ định trước khi sử dụng. – soc