indirect enum FormExpression {
case float(Float)
case reference(String,Int)
case infix(FormExpression,String,FormExpression)
case function(String,FormExpression)
}
extension FormExpression {
static var floatParser:FormParser<FormExpression> {
return { FormExpression.float($0) }<^>float
}
}
infix operator <^> : SequencePrecedence
func <^><A,B>(lhs:@escaping(A)->B,rhs:FormParser<A>) -> FormParser<B> {
return rhs.map(lhs)
}
这是我练习闭包和功能Swift的代码。现在它显示
错误 - '无法转换类型的值'(Float) - &gt; FormExpression'到 期望参数类型'(_) - &gt; FormExpression ''
。我尝试了几次,仍然不知道该怎么做。我希望有人可以帮助解决它并解释原因。谢谢
答案 0 :(得分:-1)
我解决了这个问题,但这有点好笑。
我刚刚修改了'float'对象的名称,并将'float'更改为'floater'。就是这样。
两个不同命名的对象基本相同,但另一个是错误。 ,我现在认为可能是由Swift中的命名冲突引起的,但我没有能力找到真正的原因,有兴趣和能力的朋友可以试着找出原因