我在某人代码中看到他们正在使用+
运算符,就好像它是函数doing一样+(1,2,3)
。是否可以在Julia中将运算符用作函数?
此外,我还看到了类似的内容A ? B
,其中的行为?
是可自定义的。我该怎么做,是否有可用这种方式使用的符号列表?
是的,您确实可以在Julia中将运算符用作函数。
从Julia Docs:
在Julia中,大多数运算符只是支持特殊语法的函数。(例外是具有特殊评估语义的运算符,例如&&和||。这些运算符不能用作函数,因为“短路评估”要求在评估运算符之前不对它们的操作数进行评估。)因此,还可以使用带括号的参数列表来应用它们。 ,就像您执行其他任何功能一样:
julia> 1 + 3 + 5 9 julia> +(1,3,5) 9 julia> 1 * 3 * 5 15 julia> *(1,3,5) 15 julia> h = *; julia> h(1,3,5) 15
另外,Julia允许您为运算符定义自己的含义,并为此目的提供了许多符号。您可以在此处找到可用符号的列表:| https://github.com/JuliaLang/julia/blob/master/src/julia-parser.scm
并这样定义它们:
?(a, b) = a * 3 - b # or some other arbitrary thing a ? b == a * 3 - b # true