Từ khóa forSome
được sử dụng để xác định loại hiện có trong Scala. Có trang Scala glossary giải thích chúng là gì. Tôi không thể tìm thấy một địa điểm trong tài liệu Scala giải thích chúng chi tiết, vì vậy here là một bài viết trên blog mà tôi tìm thấy trên Google giải thích cách chúng hữu ích.
Cập nhật: bạn có thể tìm định nghĩa chính xác về các loại hiện có trong số Scala specification nhưng nó khá dày đặc.
Để tóm tắt một số bài đăng mà tôi liên kết đến, các loại tồn tại hữu ích khi bạn muốn thao tác trên một thứ gì đó nhưng không quan tâm đến chi tiết của loại trong đó. Ví dụ, bạn muốn hoạt động trên các mảng nhưng không quan tâm loại của mảng:
def printFirst(x : Array[T] forSome {type T}) = println(x(0))
mà bạn cũng có thể làm với một kiểu biến trên phương pháp:
def printFirst[T](x : Array[T]) = println(x(0))
nhưng bạn có thể không muốn thêm biến kiểu trong một số trường hợp. Bạn cũng có thể thêm một ràng buộc vào biến loại:
def addToFirst(x : Array[T] forSome {type T <: Integer}) = x(0) + 1
Cũng xem ví dụ này this blog post.
Nguồn
2012-02-25 14:49:12
@JanekBogucki Liên kết trên không hoạt động. – jpcooper
http://www.scala-lang.org/news/roadmap-next.html - "forSome cú pháp bị loại bỏ". –
forSome dự kiến sẽ bị xóa trong bản phát hành "Don Giovanni": https://www.scala-lang.org/news/roadmap-next.html –