scala的类型推断机制(spark林子雨scala课后答案)
- 开发语言
- 2023-08-13
- 78
各位老铁们好,相信很多人对scala的类型推断机制都不是特别的了解,因此呢,今天就来为大家分享下关于scala的类型推断机制以及spark林子雨scala课后答案的问题...
各位老铁们好,相信很多人对scala的类型推断机制都不是特别的了解,因此呢,今天就来为大家分享下关于scala的类型推断机制以及spark林子雨scala课后答案的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
Scala和java比较
1、scala可以编写脚本,编写一个.scala的脚本代码,直接用同scalax.scala进行执行。但同时scala也可以类似java,通过scalac编译为.class等形式,基于编译执行。
2、scala可以在交互式的命令中直接编码运行。
3、支持隐式变量定义,通过var关键词定义一个变量,具体变量类型在赋值后,scala自行进行类型推断。例如vara=List(1,2,3)4、常量定义用val关键词定义5、没有静态类型,通过object定义单例类,main方法就是放在object类型中。
Node.js、Scala、Clojure等声称适合高并发的语言,分别具体适用于什么情景,何种任务
先说一些共同点:
都试图利用成熟的JVM,并可以使用JVM平台上现存的代码和广泛的库,同时避免Java语言表达上的一些弱点。两者都试图将函数编程(FP)引入到原本是为纯OO语言Java定制的JVM上。因此,它们都具有FP的特征:函数是头等公民,可以作为参数传递,可以作为返回值返回。但两种语言的设计哲学截然不同:
Clojure是历史悠久的Lisp的一种方言,它需要尊重Lisp的传统:包括臭名昭著(对Lisp爱好者是香味扑鼻)的括号海洋。当然Clojure做了很多不同传统Lisp的处理,如引入了Vector,map等基本类型,而不只是List。而Scala是全新设计的语法,它不受过往语法的限制;它深受Haskell的影响,有抽象数据类型ADT、模式匹配等鲜明特征。Scala是强类型语言,编译器积极检查数据类型,有类型推断等新类型语言的先进特征。Clojure是鸭子类型语言,编译器不检查类型,这责任在于程序员自己(目前core.typed库试图把强类型检查作为可选项加入到Clojure语言中,不过还远远不到成熟的地步)。Scala认为OO和FP都是非常有效的表达方法,因此在语言中同时支持它们。Clojure则强烈不鼓励使用OO编程,尽管从与Java互通等方面出发有一些支持。它强烈倾向于FP编程。带来的后果是Scala的程序风格可能会非常多样,而Clojure则相对统一。Scala是传统的语言开发方式:有相当多的关键字和语法糖,都需要核心开发者支持。虽然加入了元编程能力,但其元编程与普通编程区别很大,难以被一般开发者使用。Clojure从Lisp处继承的代码即数据的核心,则保证了极为自然和强大的元编程能力,任何开发者都很容易用宏来定义自己的语法,因此基于Clojure定义自己的领域语言(DSL)非常容易。由于其多样的语法特点,多种语义的支持,Scala是一种相当复杂的语言,其语法的数量比Java语言还要多,更不要说其独立于Java的自己的类型系统。与之相对,Clojure的内核非常简单,语法极为简化。一个重要的后果是,Clojure成熟较快,编译器本身容易开发,而Scala的编译器开发难度大得多。我本人是在评估了两种语言的稳定性后做出的选择。两种语言都是通用性的,因此是互相竞争关系,都声称自己适合全领域的编程。虽说在具体的库支持上可能互有长短(比如Clojure的STM被认为是更容易进行并行编程,而akka这样的actor库可以让Scala具有Erlang一般的能力),但这些很可能是临时的。所以考虑到选择一种新的语言,特别是如此有特点的两种语言,需要做好颠覆三观的准备(特别是少接触Lisp的大多数程序员),然后根据自己的喜好进行选择。
PS.有人提出Clojure的可读性不好,这点我非常不同意。这很可能是熟悉程度弱所带来的一种偏见。对于自己不熟悉的语法表达会有这种看法。实际上,由于Clojure的语法统一程度强,一般来说好的Clojure程序的一致性会更好。当然,你也可以用它写出很烂的完全不可读的程序,但哪种语言也无法避免这样的可能吧?
PPS.FP与OO的编程逻辑截然不同,从OO为主转为FP需要大的习惯转变。但如果不进行这种转变,何必学习一种新的语言来表达呢?特别是Java8也已经加入了相当的FP支持,可以在OO为主的环境中加入FP的味道了。另外,Clojure并不是纯粹的FP语言,从实用性的角度上它支持相当多的可变性编程;更纯粹的FP语言是Haskell,学院派(非爱好者的“不实用”的说法)的语言。
关于scala的类型推断机制到此分享完毕,希望能帮助到您。
本文链接:http://www.xinin56.com/kaifa/8750.html