Theo như tôi hiểu, Scala == xác định sự bình đẳng tự nhiên của hai đối tượng.Tại sao `Mảng (0,1,2) == Mảng (0,1,2)` không trả về kết quả mong đợi?
Tôi mong đợi rằng Array(0,1,2) == Array(0,1,2)
so sánh bình đẳng tự nhiên. Ví dụ, kiểm tra xem tất cả các phần tử của mảng có trả về true khi so sánh với các phần tử tương ứng của mảng khác không.
Mọi người nói với tôi rằng Scala's Array
chỉ là một Java []
chỉ so sánh danh tính. Nó sẽ không có ý nghĩa hơn khi ghi đè lên phương pháp equals
của phương pháp Array
để so sánh bình đẳng tự nhiên?
Tôi không quen với Scala. Tuy nhiên, bạn có chắc chắn == không so sánh xem các mảng có phải là các bí danh (tham chiếu tới cùng một đối tượng trong bộ nhớ) không? Tôi giả định đây là một khả năng, vì bạn đã đề cập nó có liên quan đến một mảng Java. – Cam
Đó là một tình huống không may, như các câu trả lời khác mô tả, nhưng khi bạn biết bạn đang đối phó với Array, bạn có thể sử dụng sameElements và nhận được câu trả lời bạn muốn trong khi tránh tất cả các gói và boxing và circumlocutions. –