cannot assign value of type 'T' to type 'T'

// non-nominal type wrapper
struct NonnominalType<T> {
    let subject: T
}

extension NonnominalType {
    // ⭐ 注意:這裡不能寫成 `init<T>`
    // 不然會引進「新的型別參數 `T`」(是的,跟「舊的型別參數 `T`」
    // 名字一模一樣),然後產生「令人傻眼的錯誤訊息」:
    // 「⛔ cannot assign value of type 'T' to type 'T'」
    init(_ subject: T){
        self.subject = subject
    }
}

Last updated

Was this helpful?