Scala是否具有少量底层语法特征?
Scala是一种有趣的语言,声称简洁,可扩展(通过在库中指定许多功能而不是编译器),并支持DSL.
为了实现这一点,它有很多运算符和编译器调整(例如,支持中缀运算符,例如:_ *来展开序列). 我发现许多操作符(“Scala”编程指南中的2?页)和编译器调整混乱.公平地说,许多运算符是从C等人借来的常规算术/布尔运算符. 我被告知,支持这一点有一些基本的句法规则,我认为,如果我知道这将会减少我的认知负担. 有没有一些规则(如果是这样的话),或者我注定要学习图书馆中许多“运算符”的方法和含义? 解决方法
有两种方法可以了解您对运算符的问题:
> Scala编译器如何处理操作符的规则是什么? (语言规则) 语言规则 确实有规则.我会让你确定你是否认为“少数”他们.作为大多数Scala,您可以在Language Reference第6.12节中找到它们. 最重要的位: >唯一接受的前缀运算符是 –,!和?. 所以四条规则,基本上是.我鼓励你阅读规范更多的洞察力. 运算符定义 运算符定义的选择取决于库设计者.例如,Scala集合库使用相对较小且一致的运算符集(,–,**,=,– =,…等).解析器组合器带有更异国情调的集合,一些图书馆可以完全不可穿透,因为它们的定制操作符定义(sbt或Lift,但这只是我个人的意见). 这被认为是潜在问题的根源,Scala风格指南有this说明符号方法名称(自定义运算符):
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- jenkins – Docker:无法找到root用户:passwd文件中没有
- Shell脚本中‘‘ () {} [] " " [[]] ``的不同用法
- Docker中的小写图像名称
- angularjs – 如何使用JavaScript中的过滤器而不是Html
- 在Scala中再现Java OpenGL ES 2.0演示时出现奇怪的NullPoin
- angular的splitter案例学习
- Axis2 WebService(配置、发布、调用)
- 解决JAXB中接口不同内容相同的替代方案(续上)
- WebService、Ajax与回调函数(一)
- vim powerline tmux没有扩展以填满整个状态行