【发布时间】:2019-08-29 07:18:43
【问题描述】:
我正在尝试创建自己的自定义运算符!
postfix operator !! //error
static postfix func !! (optionalValue: Optional<T>) -> T {
// realisation
}
我收到错误消息
运算符声明中的预期运算符名称
在声明中。
【问题讨论】:
我正在尝试创建自己的自定义运算符!
postfix operator !! //error
static postfix func !! (optionalValue: Optional<T>) -> T {
// realisation
}
我收到错误消息
运算符声明中的预期运算符名称
在声明中。
【问题讨论】:
自定义运算符只能使用有限的字符集,并且某些运算符是保留的,不能重载。 精确的规则记录在Lexical Structure 中。特别是(强调):
虽然您可以定义包含问号 (?) 的自定义运算符,但它们不能仅包含单个问号字符。此外,虽然运算符可以包含感叹号 (!),但 后缀运算符不能以问号或感叹号开头。
还有
<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
【讨论】: