[随笔] 有人了解Scala的实验性的特性:宏(macro)么?

Eastsun 2014-02-02
貌似挺强大的功能(用过Lisp的宏的人估计会很熟悉,不过我没用过),能够在编译期间按需生产代码。

与C的宏不一样,C的宏差不多就是一个字符串替换,其作用发生在预处理的过程;
而Scala的宏发生在编译阶段,能够与编译器交互,获得代码上下文的编译信息,从而可以生产高效的代码。

关于宏的应用,可以参看这篇:http://scalamacros.org/paperstalks/2013-07-17-WhatAreMacrosGoodFor.pdf
jilen 2014-02-07
看看play里json的实现,根本无法阅读。估计是直接showRaw出来的
jilen 2014-02-07
宏的编译期反射还蛮强大,可以获得编译时的类型信息;运行时反射不能再多线程环境运行,等于没用,2.11才会解决这问题
Global site tag (gtag.js) - Google Analytics