我正在尝试创建自己的自定义运算符!
postfix operator !! //error
static postfix func !! (optionalValue: Optional<T>) -> T {
// realisation
}
我收到错误消息
运算符声明中的预期运算符名称
在声明中。
答案 0 :(得分:1)
自定义运算符只能使用一组有限的字符,并且某些运算符是保留的,不能重载。 确切的规则记录在Lexical Structure中。特别要强调的是:
尽管您可以定义包含问号(?)的自定义运算符,但它们不能仅包含单个问号字符。另外,尽管运算符可以包含感叹号(!),但后缀运算符不能以问号或感叹号开头。
也
T
将<T>
声明为占位符类型,static
。工作示例:
postfix operator =!!
postfix func =!! <T> (optionalValue: Optional<T>) -> T {
// realization
}
答案 1 :(得分:-1)
这是一个例子
//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