2012-06-08 44 views
11

Tôi cần thứ gì đó để lưu trữ LIFO. Không cần đi ngang qua và các chức năng khác ngoại trừ push và pop.Tại sao nên sử dụng scala.collection.immutable.Stack

Tôi đã tìm thấy lớp học đặc biệt trong bộ sưu tập scala để tạo ngăn xếp. Nhưng nó thiếu đối tượng Nil trong khớp mẫu và các thành ngữ scala tiện dụng khác. Danh sách bất biến phù hợp ngay từ cái nhìn đầu tiên, chúng có cons để xây dựng và khai thác và đó là tất cả những gì cần thiết từ LIFO.

Có lý do nào đằng sau scala.collection.immutable.Stack tồn tại không? Tại sao tôi nên sử dụng nó, trường hợp sử dụng để hiển thị những lợi ích của nó là gì?

Trả lời

19

Từ the API documentation:

Lưu ý: lớp này chỉ tồn tại vì lý do lịch sử và là một chất tương tự của ngăn xếp có thể thay đổi. Thay vì ngăn xếp không thay đổi, bạn chỉ có thể sử dụng danh sách .

Và trong a little more detail:

ngăn xếp Immutable được sử dụng ít khi vào các chương trình Scala vì chức năng của họ được gộp bởi danh sách: Một push trên một đống bất biến là giống như một :: trên một danh sách và a pop trên ngăn xếp giống như một số tail trên một danh sách.

Vì vậy, để giải đáp thắc mắc của bạn:

  1. Vâng, có một lý do cho sự tồn tại của nó.
  2. Không, bạn không nên thích nó hơn danh sách.
Các vấn đề liên quan