2016-05-08 33 views
6

मुझे यह <<= बहुत सारे एसबीटी कोड में प्रतीक दिखाई देता है, लेकिन मैं यह नहीं करता कि यह क्या करता है।एसबीटी में `<< =` का अर्थ क्या है?

मैंने इस प्रतीक के लिए भी googling की कोशिश की लेकिन मुझे कोई जवाब नहीं मिला।

क्या आप मुझे कुछ दस्तावेज या उदाहरण के लिए इंगित कर सकते हैं जो स्पष्ट रूप से बताता है कि इस प्रतीक का क्या अर्थ है और यह क्या करता है?

उत्तर

0

ओह, गहरा स्पष्टीकरण काफी जटिल है।

असल में, हस्ताक्षर है:

/* 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 संकलन के साथ काम:

def <<= (app: Initialize[Task[S]]): Setting[Task[S]] = macro std.TaskMacro.itaskAssignPosition[S] 

तो यह इस मैक्रो शामिल

products in Compile <<= products in Aspectj 

असल में, इसका मतलब है: AspectJ स्रोत फ़ाइलों पर कोड स्रोत का आधार (के साथ उत्पन्न 10), शास्त्रीय नहीं।

मैं "replaceAll/मिटा" का एक प्रकार के रूप में यह व्याख्या:
AspectJ एनोटेशन शामिल फ़ाइलों द्वारा संकलित करने के लिए फ़ाइलों का गुच्छा बदलें।

+3

बहुत जटिल। इसका मतलब है 'निर्भर करता है << = (सबकुछ, सूचीबद्ध, यहां) ' – pfn

4

pfn's comment पर आगे दस्तावेज़ों में More Kinds of Settings के तहत वर्णित है। मुझे लगता है कि इसे 0.13 दस्तावेज़ों से हटा दिया गया था क्योंकि उसी व्यवहार को अब := के संदर्भ में परिभाषित किया जा सकता है।

संबंधित मुद्दे