请帮助了解Scalding DSL如何转换为常规Scala代码。
https://github.com/twitter/scalding/wiki/Fields-based-API-Reference#sortBy
例如:
val fasterBirds = birds.map('speed -> 'doubledSpeed) { speed : Int => speed * 2 }
问题:
map,
reduce,groupBy,
sort和`scanLeft?谢谢!
答案 0 :(得分:4)
这是常规的Scala代码。 Scala的一个优势在于其可扩展性。该语法允许程序员扩展程序的语法以创建特定于域的语言。这在使用底层库时特别有用。
Scala的特定于域的语言并没有转化为允许您将代码的应用推迟到适当的时间。刻度字符(')表示以下字符集是符号,内置数据类型。 ->
运算符是语法糖,可以用与逗号相同的方式表达,但在视觉上,它赋予“翻译”或“从此到此”的概念。
您正在查看的特定于域的语言不会创建结构,尽管它看起来确实会创建一个仿函数。在这种情况下,Java虚拟机将其视为Function1[Type,Type]
实例,它具有apply
方法,该方法接受其参数并返回由提供的代码计算的结果。