我在很多SBT代码中看到了这个<<=
符号,但我不知道它的作用。
我也尝试用谷歌搜索这个符号,但我没有得到任何答案。
请您指点一些文档或示例,清楚地说明此符号的含义及其作用是什么?
答案 0 :(得分:4)
继pfn's comment之后,More Kinds of Settings下的0.12
文档中对此进行了描述。我想它已从0.13
文档中删除,因为现在可以用:=
定义相同的行为。
答案 1 :(得分:0)
哦,深刻的解释非常复杂。
基本上,签名是:
def <<= (app: Initialize[Task[S]]): Setting[Task[S]] = macro std.TaskMacro.itaskAssignPosition[S]
所以它涉及这个宏:
/* Implementations of <<= macro variations for tasks and settings. These just get the source position of the call site.*/
def itaskAssignPosition[T: c.WeakTypeTag](c: Context)(app: c.Expr[Initialize[Task[T]]]): c.Expr[Setting[Task[T]]] =
settingAssignPosition(c)(app)
在处理AspectJ编译时我已经使用过这种运算符:
products in Compile <<= products in Aspectj
基本上,它意味着:将代码源基于AspectJ源文件(使用plugin生成),而不是经典的。
我把它解释为一种&#34; replaceAll / erase&#34;:
替换大量文件以通过涉及AspectJ注释的文件进行编译。