2013-09-21 22 views
5

Tôi đã thấy biểu tượng??? một biểu tượng hợp lệ hoặc nhà điều hành trong scala

??? 

sử dụng trong mã scala, tôi tuy nhiên không biết nếu nó có nghĩa là để được mã giả hoặc mã scala thực tế, nhưng IDE eclipse của tôi cho scala không gắn cờ nó và bảng tính thực sự đánh giá nó. Tôi chưa thể tìm thấy bất kỳ thứ gì qua tìm kiếm trên google. Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn

Trả lời

12

Vâng, đây là số nhận dạng hợp lệ.

Kể từ Scala 2.10, có một phương pháp ??? trong Predef chỉ đơn giản là ném một NotImplementedError.

def ??? : Nothing = throw new NotImplementedError 

này được thiết kế để được sử dụng để nhanh chóng phác thảo bộ xương của một số mã, khiến việc triển khai các phương pháp cho sau này, ví dụ:

class Foo[A](a: A) { 

    def flatMap[B](f: A => Foo[B]): Foo[B] = ??? 

} 

Bởi vì nó có một loại Nothing (đó là một loại phụ của mọi loại khác), nó sẽ kiểm tra loại tại chỗ của bất kỳ giá trị nào, cho phép bạn biên dịch mã không hoàn chỉnh mà không có lỗi. Nó thường được nhìn thấy trong các bài tập, nơi mà các giải pháp cần phải được viết thay cho ???.

+2

Điều thú vị là được giới thiệu vào thư viện chuẩn khá sớm sau khóa học Coursera Scala đầu tiên, nơi nó được đưa vào thư viện tập thể dục. Thật sự là trùng hợp ngẫu nhiên, có lẽ;). –

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