扩展Scala语法的最佳方法是什么?例如,我想添加这样的东西(C++):
int s = (1 > 2) ? 3 : 4;
Run Code Online (Sandbox Code Playgroud)
或(Python)的:
var s = 0
if 1 < 4:
s = 3 + 5
else:
s = 8 - 9
print(s)
Run Code Online (Sandbox Code Playgroud)
一般来说,我想添加一些有用的(为我的任务)语法构造,我会像scalac插件一样实现它,但似乎插件只适用于AST.
因为Scala中的if-else构造是一个表达式,所以在没有任何扩展的情况下可以非常接近:
scala> val s = if (1 > 2) 3 else 4
s: Int = 4
Run Code Online (Sandbox Code Playgroud)