3

在 Observable 模式成人礼的背景下简单地探索 Swift。我想探索的是为了语法糖而实现前缀运算符。

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. 泛型真的不能用作返回类型吗?这里还有其他事情吗?

4

1 回答 1

6

你只需要使函数通用:

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

正如你所写的,它T应该是一个类型本身,而不是一个类型参数。

于 2015-12-16T19:29:23.853 回答