Trước khi bất cứ điều gì khác đang nói, def
không định nghĩa một lĩnh vực, nó định nghĩa một phương thức.
Trong trường hợp thứ hai, bạn có thể bỏ qua dấu ngoặc đơn vì một tính năng cụ thể của Scala. Có hai điểm khác biệt đáng quan tâm ở đây: một cơ chế và một trong những cách sử dụng được khuyến nghị.
Bắt đầu bằng cách sau, bạn nên sử dụng danh sách tham số trống khi có các tác dụng phụ. Một ví dụ cổ điển là close()
. Bạn sẽ bỏ qua dấu ngoặc đơn nếu không có tác dụng phụ nào để gọi phần tử.
Bây giờ, như một sự khác biệt thực tế - ngoài những cú pháp cú pháp kỳ lạ trong các trường hợp góc (tôi không nói có, chỉ phỏng đoán) - các kiểu cấu trúc phải tuân thủ đúng quy ước.
Ví dụ: Source
có phương thức close
không có dấu ngoặc đơn, có nghĩa là loại cấu trúc là def close(): Unit
sẽ không chấp nhận Source
. Tương tự như vậy, nếu tôi xác định phương thức cấu trúc là def close: Unit
, thì đối tượng Java closeable
sẽ không được chấp nhận.
Nguồn
2010-08-16 15:30:20
Trên thực tế, Scala sẽ cho phép bạn bõ mẫu âm chót bất kỳ số lượng (trailing) danh sách tham số trống! Hãy thử 'def x()()()()()()() = 5'! –