我正在阅读关于advanced operators的swift。为什么'infix`是默认的
基本功能:
func add(a: Unicorn, b: Unicorn) -> Unicorn { return a + b }
add(u1, u2) // two unicorns are added
中缀运算符:
func + (a: Unicorn, b: Unicorn) -> Unicorn { return a + b }
c = u1 + u2
后缀:
postfix func + (a: Unicorn) -> Unicorn { return a + 2 } // nonsense example
u1+
我不明白怎么infix
可以推定为默认值。从正常的函数声明来看,它与我看起来没有什么不同。
这里有什么规则 - 任何单个字符是中缀操作的合法名称?这是否意味着单个char函数不被允许?可以任意两个参数函数在swift中被称为infix风格?
有时候,为了真正理解编程语言中的某些东西,你需要去学习一些关于编译器的知识。在这种情况下,词法分析是什么以及语法分析是什么。 – Sulthan
要了解真正全面的知识,学习词法分析器和编译器会很棒。我很乐意参加编译器课程。现在,只要知道如果函数名是一个运算符并且它有两个参数就足够了,'infix'是一个可导出的默认值。自定义操作符需要定义,所以这仍然有效。 – SimplGy