我正在尝试创建自己的自定义运算符!
postfix operator !! //error
static postfix func !! (optionalValue: Optional<T>) -> T {
// realisation
}
我收到错误消息
运算符声明中的预期运算符名称
在声明中。
自定义运算符只能使用一组受限制的字符,并且某些运算符是保留的,不能重载。 精确的规则记录在词汇结构中。特别是(着重号是后加的(:
尽管可以定义包含问号 (?( 的自定义运算符,但它们不能仅包含单个问号字符。此外,尽管运算符可以包含感叹号 (!(,但后缀运算符不能以问号或感叹号开头。
也
- 您的运算符是泛型的,因此您必须使用
<T>
将T
声明为占位符类型 , - 除非在类型中定义,否则不得
static
函数。
工作示例:
postfix operator =!!
postfix func =!! <T> (optionalValue: Optional<T>) -> T {
// realization
}
下面是一个例子
//Define a operator
prefix operator √
//create a function and perform the operation.
prefix func √(lhs: Double) -> Double {
return sqrt(lhs)
}
//Do operation
let someVal:Double = 25
let squareRoot = √someVal // result is 5