在Observable模式通过的背景下,简单地探索Swift。我想要探索的是为了语法糖而实现前缀运算符。
class Observable<T> {
var value:T
init(_ v:T) {
value = v
}
}
postfix operator &* { }
postfix func &* (arg:Observable<T>) -> T {
return arg.value
}
然而,编译器通知我-> T
是use of an undeclared type
。通用版真的不能用作返回类型吗?还有其他事情在这里发生吗?
答案 0 :(得分:6)
你只需要使函数通用:
postfix func &*<T>(arg:Observable<T>) -> T {...}
正如你所写,T
本身应该是一个类型,而不是类型参数。