在Scala中嵌入XML(和其他语言?)
我想知道如何实现
scala.xml库,以获取
XML中的Elem-instance.
所以我可以写: val xml = { <myxml> Some wired text withoud "'s or code like import x x.func() It's like a normal sting in triple-quotes. </myxml> } xml.text String = " Some text wired withoud "'s or code like import x x.func() It's like a normal sting in triple-quotes. " 看源代码并没有给我洞察,怎么实现. var x = LatexCode { sqrt{frac{a}{b}} } x.toString "sqrt{frac{a}{b}}" 要么 var y = PythonCode { >>> import something >>> something.func() } y.toString """import something ...""" y.execute // e.g. passed to python as python-script 要么 object o extends PythonCode { import x x.y() } o.toString """import x....""" 我想避免使用像PythonCode {“”“import …”“”}之类的东西作为“DSL”.而在scala中,XML被神奇地传输到一个scala.xml-Class;与我可以用val a =’symoblname得到的符号相同,但是在源代码中没有线索如何实现. 我该怎么做,就像内部的DSL呢? 解决方法
XML是Scala语言功能(*) – 请参阅
SLS第1.5节.
我认为string interpolation将在2.10中进行,但是至少可以让您定义自己的DSL: val someLatex = latex"""sqrt{frac{a}{b}}}""" 这是一个在SIP中更全面地解释的实验性功能,但是另外还有blogged about by the prolific Daniel Sobral.这点(当然),String中的代码的正确性可以在编译时检查(在一定程度上可以在一个无类型语言:-),您的IDE甚至可以帮助您编写它(也可以在一定程度上以无类型的语言编写:-() (*) – 由于实施的许多缺点,我们可能会期望将来会发生变化.我的理解是,字符串插值和反xml的组合可能是一个真正的方式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |