当前位置: 首页 > news >正文

企业网站php源码做网站建设的

企业网站php源码,做网站建设的,win7iis如何做网站,建设网站上传代码Scala开发团队正在将实验版宏指令加入到即将发行的2.10版中。Scala宏指令提供了编译时元编程的高级形式。Scala宏网站描述道#xff1a;\u0026#xD;\n\u0026#xD;\n“宏指令显著简化了代码分析和代码生成#xff0c;这使得它们成为处理大量现实用例的一种可选工具。传统上涉及编…Scala开发团队正在将实验版宏指令加入到即将发行的2.10版中。Scala宏指令提供了编译时元编程的高级形式。Scala宏网站描述道\u0026#xD;\n\u0026#xD;\n“宏指令显著简化了代码分析和代码生成这使得它们成为处理大量现实用例的一种可选工具。传统上涉及编写和维护样板的场合可用宏以简单且易维护的方式实现。因此我们认为宏对于Scala编程语言是一项非常有价值的资产。”\u0026#xD;\n\u0026#xD;\nScala的宏指令允许开发者创建方法时以语法树转化的形式实现。这些是标准方法的定义其在编译期间被显式地转换。举一个简单的例子如assert方法\u0026#xD;\n\u0026#xD;\nimport scala.reflect.makro.Context\u0026#xD;\nimport language.experimental.macros\u0026#xD;\nobject Asserts {\u0026#xD;\n def assert(cond: Boolean, msg: Any) macro Asserts.assertImpl\u0026#xD;\n def raise(msg: Any) throw new AssertionError(msg)\u0026#xD;\n def assertImpl(c: Context)(cond: c.Expr[Boolean], msg: c.Expr[Any]): c.Expr[Unit] \u0026#xD;\n if(assertionsEnabled) c.reify(if(!cond.splice) raise(msg.splice))\u0026#xD;\n else c.reify(())\u0026#xD;\n}\u0026#xD;\n\u0026#xD;\nassert宏就像代码中的一个普通的方法。该实现使用macro方法委托成为编译器扩展。该编译器扩展是方法assertImpl。assertImpl使用当前编译的上下文作为参数而参数传给assert作为语法树Expr。这些语法树接下来被用作产生一个新的语法树并被插入至assert宏方法被调用的位置。\u0026#xD;\n对于assert宏来说调用assert的方法assert(x ! null, \X is null\) 会给cond变量填充x ! null的语法树而给msg变量填充\X is null\的语法树。对reify的调用会产生一个 if(x ! null) Asserts.raise(\X is null\)的或者()的新语法树。这个语法树会替代原始的assert(x ! null, \X is null\) 调用。\u0026#xD;\nreify和自清洁宏系统的更多细节可参考自清洁宏建议。\u0026#xD;\n有些人怀疑添加宏的效果在一份题为《Scala Macros: \Oh God Why?\》博客中 Jay Kreps 评论道\u0026#xD;\n\u0026#xD;\n“这也是我对于Scala 宏指令的看法Oh God Why?。并不是因为宏指令或者这项提议有什么坏处问题在于这真的是最重要的事情吗”\u0026#xD;\n\u0026#xD;\nKreps接下来列举了一系列更重要的事情包括编译速度、IDE支持、文档和编译文件大小。\u0026#xD;\n支持Kreps观点的大有人在。Ivan Todoroski在一封给Scala邮件列表的信中写到\u0026#xD;\n\u0026#xD;\n“在搜索问题的时候Scala宏指令看起来只是一个低级别的、hacking风格的解决方案。它们在编写时太复杂不太像Scala的风格调试也麻烦而且可能不过是为Scala的‘太多高深莫测的魔法’的形象增添了一笔。”\u0026#xD;\n\u0026#xD;\n对此Scala的发明者Martin Odersky回复说\u0026#xD;\n\u0026#xD;\n“宏的设计初衷和Scala语言的其他一般设计一样都是为了使事情简单化。我们已经实现通过宏替换代码希望其他功能也能这样实现。比如说有一种强推在某种情况下消除 atomic { implicit transaction \u0026gt; ... }中的隐含参数和许多其他相关情形。有了宏这类问题就微不足道了。”\u0026#xD;\n\u0026#xD;\n围绕着Scala宏的讨论已经逐渐偃旗息鼓社区成员们正在等着看最终的实现。最终发布的版本始终没有放弃在宏指令方面的冒险。许多社区内基于宏的项目已经逐渐生根发芽包括\u0026#xD;\nMacrocosm——测试宏指令实际用例的库。\u0026#xD;\nExpecty——Groovy的Spock框架中的断言语句在Scala中的适应性改编。\u0026#xD;\nSlick——引进类似LINQ的数据库操作的尝试。Slick能转化Scala语法为数据库查询。\u0026#xD;\nScalaMock——Scala的模拟对象测试库。\u0026#xD;\n在2.10.0-M4发布说明里可以找到其他一系列Scala2.10中的功能包括\u0026#xD;\n字符串插值\u0026#xD;\nFutures和Promises\u0026#xD;\nValue类\u0026#xD;\n动态类型\u0026#xD;\n隐式类\u0026#xD;\nScala2.10版马上就要发布了Scala开发团队号召人们试用最新的milestone发行版并提供反馈意见。你可以从这里下载最新版本。\u0026#xD;\n感谢杨赛对本文的审校。\u0026#xD;\n给InfoQ中文站投稿或者参与内容翻译工作请邮件至editorscn.infoq.com。也欢迎大家通过新浪微博InfoQ或者腾讯微博InfoQ关注我们并与我们的编辑和其他读者朋友交流。
http://www.pierceye.com/news/469132/

相关文章:

  • 安徽省水利厅网站 基本建设营销策划公司名称
  • 网页设计师培训学院开封做网站优化
  • 山西电力建设三公司网站影院禁止18岁以下观众观影
  • 防伪网站模板网站开发怎么赚钱
  • 医院网站建设意义推广咨询
  • 广东省54个市win10最强优化软件
  • 交换链接网站asp.net企业网站框架
  • 惠州网站建设制作推广医疗设备响应式网站
  • 有哪些做ppt的网站cms网站开发涉及的知识
  • 软件开发成本估算表苏州百度seo代理
  • 网站内部链接有什么作用临安做企业网站的公司
  • 整合营销网站网站建设销售话术开场白
  • 永久免费wap自助建站北京家装设计师排名
  • 西安学校网站建设报价做淘宝客没有网站怎么做
  • 网站建设运营思路网站已在别处备案怎么转入阿里云
  • 网站开发前端如何开发秦皇岛做网站
  • sns网站建设最好看免费观看高清大全宫崎骏
  • 手机网站开发下载app开发长沙
  • 重庆南川网站制作价格西宁网站建设优化
  • 电子商务网站建设与管理试卷6平面设计接单兼职
  • 建设手机网站大概要多少钱云南建投二公司官网
  • 公司如何建设网站首页网页设计与网站开发试题答案
  • 中企动力合作网站网站app下载平台怎么做
  • 网站开发专业成功人士重庆邮电大学官网网站
  • 官方网站后台图片下载怎么做网站开发与支付宝端口连接
  • 浏览器怎么打开网站服务器下载在线音乐网站开发摘要
  • 建网站拿到广告吉林整站优化
  • 怎么建站网站清远佛冈住房和城乡建设局网站
  • 领导高度重视门户网站建设广州引流推广公司
  • 公司网站建设吧个好wordpress增加搜索