2015-06-01 19 views
21

Vui lòng giải thích sự khác biệt giữa SequenceType, GeneratorTypeCollectionType bằng ngôn ngữ lập trình Swift.Sự khác nhau giữa SequenceType và CollectionType là gì?

Ngoài ra, nếu tôi đang triển khai cấu trúc dữ liệu của riêng mình, lợi ích của việc sử dụng các giao thức SequenceType, GeneratorType hoặc CollectionType là gì?

Trả lời

46

GeneratorType (IteratorProtocol in Swift 3):Generators là cái gì đó có thể cung cấp cho các yếu tố next của một số dãy, nếu không có yếu tố nó trả nil. Generators đóng gói trạng thái lặp lại và giao diện để lặp qua một chuỗi.

Máy phát điện hoạt động bằng cách cung cấp một phương thức, cụ thể là - next(), chỉ đơn giản trả về giá trị tiếp theo từ số sequence cơ bản.

lớp Sau Áp dụng GeneratorType Protocol:

DictionaryGenerator, EmptyGenerator, hơn here.


SequenceType (Sequence in Swift 3): Một Sequence đại diện cho một loạt các giá trị. Sequence là loại có thể được lặp lại với vòng lặp for...in.

Về cơ bản, chuỗi là một nhà máy phát điện; một cái gì đó mà biết làm thế nào để làm cho máy phát điện cho một chuỗi.

lớp Sau Áp dụng SequenceType Protocol:

NSArray, NSDictionary, NSSetmore.


CollectionType (Collection in Swift 3):Collection là một SequenceType có thể được truy cập thông qua subscript và định nghĩa một startIndexendIndex. Collection là một bước vượt quá trình tự; các yếu tố riêng lẻ của một bộ sưu tập có thể được truy cập nhiều lần.

CollectionType thừa hưởng từ SequenceType

lớp Sau Áp dụng CollectionType Protocol:

Array, Dictionary, Set, Rangemore.


Mẫu biết thêm thông tin bạn có thể thấy this, this, và this

+0

Xin vui lòng sửa cho tôi nếu tôi sai.** 1) ** 'Array',' Dictionary' và 'Set' tất cả đều phù hợp với' collectionType' (chính nó thực hiện SequenceType (có hàm có tên 'next' trả về một cái gì đó thực hiện' GeneratorType'))? ** 2) ** Bạn có thể cập nhật câu trả lời của mình để bao gồm một số loại Swift Foundation phù hợp với từng giao thức trong 3 giao thức được đề cập không? – Honey

+0

Cảm ơn. Bạn cũng không thể chỉ số hoặc lấy chỉ mục đầu tiên và cuối cùng của NSArray hoặc NSDictionary? – Honey

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