Các loại vật liệu làm phần mở rộnglỗi Loại phần mở rộng cho từ điển <'K, 'V>
module Dict =
open System.Collections.Generic
type Dictionary<'K, 'V> with
member this.Difference(that:Dictionary<'K, 'T>) =
let dict = Dictionary()
for KeyValue(k, v) in this do
if not (that.ContainsKey(k)) then
dict.Add(k, v)
dict
cung cấp cho các lỗi:
The signature and implementation are not compatible because the declaration of the type parameter 'TKey' requires a constraint of the form 'TKey : equality
Nhưng khi tôi thêm các hạn chế nó mang lại cho các lỗi:
The declared type parameters for this type extension do not match the declared type parameters on the original type 'Dictionary<,>'
này đặc biệt bí ẩn vì phần mở rộng kiểu sau không có ràng buộc và wor ks.
Bây giờ tôi có những suy nghĩ kỳ lạ: là hạn chế chỉ khi các thành viên nhất định được truy cập?
Tôi sẽ không bao giờ đến đó. Tại sao khởi tạo từ điển với bộ so sánh phá vỡ ràng buộc bình đẳng? – Daniel
Cảm ơn, desco. Tôi cần phải ở lại để đọc một số thông tin về đêm khuya. – Daniel
@ Daniel, tôi nghi ngờ rằng thông số kỹ thuật đọc vào ban đêm có thể sẽ có hiệu ứng ngược lại hơn là ở lại - dù sao thì tôi cũng vậy;) – Benjol