为什么我不能将 T 用作前缀运算符的 return 类型?

Why can't I use T as a return type for my prefix operator?

简单地探索 Swift,在 Observable 模式通过仪式的上下文中。我想探索的是为了语法糖而实现前缀运算符。

class Observable<T> {
    var value:T
    init(_ v:T) {
        value = v
    }
}

postfix operator &* { }

postfix func &* (arg:Observable<T>) -> T {
    return arg.value
}

但是,编译器告诉我 -> Tuse of an undeclared type。泛型真的不能作为return类型吗?这里还有其他事情吗?

您只需要使函数通用:

postfix func &*<T>(arg:Observable<T>) -> T {...}

如您所写,T 应该是类型本身,而不是类型参数。