2011-07-08 21 views
42

Có điều tôi không hiểu về số collection.mutable.Seq của Scala. Nó mô tả giao diện cho tất cả các chuỗi có thể thay đổi, nhưng tôi không thấy các phương thức để chắp thêm hoặc thêm vào các phần tử mà không tạo một chuỗi mới. Tôi có thiếu thứ gì đó hiển nhiên ở đây không?Cách thêm hoặc thêm vào một Scala mutable.Seq

:++: để nối thêm và thêm vào, tương ứng, nhưng chúng tạo bộ sưu tập mới - để phù hợp với hành vi của chuỗi bất biến, tôi giả định. Điều này là tốt, nhưng tại sao không có phương pháp nào như +=+=:, như ArrayBufferListBuffer xác định, cho nối thêm và thêm vào tại chỗ? Điều đó có nghĩa là tôi không thể tham chiếu đến một seq có thể thay đổi được gõ là collection.mutable.Seq nếu tôi muốn thực hiện nối thêm tại chỗ?

lần nữa, tôi phải mất cái gì rõ ràng, nhưng không thể tìm thấy những gì ...

Trả lời

69

mutability cho chuỗi chỉ đảm bảo rằng bạn sẽ có thể trao đổi trên các mặt hàng cho những người khác nhau (thông qua các phương pháp update), như bạn có thể với ví dụ mảng nguyên thủy. Nó không không đảm bảo rằng bạn sẽ có thể làm cho chuỗi lớn hơn (đó là những gì các đặc điểm Growable là cho) hoặc nhỏ hơn (Shrinkable).

Buffer là đặc điểm trừu tượng có chứa GrowableShrinkable, không phải Seq.

+1

Và tất cả đều có ý nghĩa ngay bây giờ! Đó là phần rõ ràng tôi đã bỏ lỡ. Cảm ơn! –

+3

Ồ. Tôi tự hỏi liệu điều này có thực sự hữu ích với bất kỳ ai không. –

Các vấn đề liên quan