社区
Hadoop生态社区
帖子详情
命令行下使用 Scala 命令编译 源文件,为什么没有在当前目录下看到编译之后的class文件
simisty
2017-02-23 11:11:24
命令行下使用 Scala 命令编译 源文件,为什么没有在当前目录下看到编译之后的class文件
版本scala 2.10.6 求指点
...全文
443
1
打赏
收藏
命令行下使用 Scala 命令编译 源文件,为什么没有在当前目录下看到编译之后的class文件
命令行下使用 Scala 命令编译 源文件,为什么没有在当前目录下看到编译之后的class文件 版本scala 2.10.6 求指点
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
链巨人
2017-03-03
打赏
举报
回复
我刚刚使用命令行试了一下,scalac Test.scala,并没有发现你所描述的问题耶,只是我的版本是2.11.6,理论上在cmd当前目录是生成.class文件的。
acyclic:Acyclic是一个
Scala
编译
器插件,可让您禁止
文件
之间的循环依赖
非循环 非循环是
Scala
编译
器插件,它允许您将构建中的
文件
标记acyclic ,从而将
文件
之间的循环依赖关系转换为
编译
错误。 例如,以下两个
文件
之间具有循环依赖关系: package fail . simple
class
A { val b : B = null } package fail . simple
class
B { val a : A = null } 在这种情况下,很明显存在循环依赖关系,但是在较大的项目中,可能很难发现存在循环依赖关系的事实。
使用
Acyclic ,您可以
使用
acyclic导入来注释任何一个
源
文件
: package fail . simple import acyclic . file
class
A { val b : B = null } 尝试将这些
文件
一起
编译
会导致
编译
错误: error : Unwanted cycl
3、
Scala
源
文件
的编写和运行及
编译
结果的反
编译
深入分析(单例设计模式)
Scala
源
文件
的编写和运行及
编译
结果的反
编译
深入分析(单例设计模式)
scala
Scala
编程语言抓住了很多开发者的眼球。如果你粗略浏览
Scala
的网站,你会觉得
Scala
是一种纯粹的面向对象编程语言,而又无缝地结合了
命令
式编程和函数式编程风格。Christopher Diggins认为: 不太久之前编程语言还可以毫无疑意地归类成“
命令
式”或者“函数式”或者“面向对象”。
Scala
代表了一个新的语言品种,它抹平了这些人为划分的界限。 根据David Rupp在博客中的说法,
Scala
可能是下一代Java。这么高的评价让人不禁想看看它到底是什么东西。
Scala
有几项关键特性表明了它的面向对象的本质。例如,
Scala
中的每个值都是一个对象,包括基本数据类型(即布尔值、数字等)在内,连函数也是对象。另外,类可以被子类化,而且
Scala
还提供了基于mixin的组合(mixin-based composition)。 与只支持单继承的语言相比,
Scala
具有更广泛意义上的类重用。
Scala
允许定义新类的时候重用“一个类中新增的成员定义(即相较于其父类的差异之处)”。
Scala
称之为mixin类组合。
Scala
还包含了若干函数式语言的关键概念,包括高阶函数(Higher-Order Function)、柯里化(Currying)、嵌套函数(Nested Function)、序列解读(Sequence Comprehensions)等等。
Scala
是静态类型的,这就允许它提供泛型类、内部类、甚至多态方法(Polymorphic Method)。另外值得一提的是,
Scala
被特意设计成能够与Java和.NET互操作。
Scala
当前版本还不能在.NET上运行(虽然上一版可以-_-b),但按照计划将来可以在.NET上运行。
Scala
可以与Java互操作。它用
scala
c这个
编译
器把
源
文件
编译
成Java的
class
文件
(即在JVM上运行的字节码)。你可以从
Scala
中调用所有的Java类库,也同样可以从Java应用程序中调用
Scala
的代码。用David Rupp的话来说, 它也可以访问现存的数之不尽的Java类库,这让(潜在地)迁移到
Scala
更加容易。 这让
Scala
得以
使用
为Java1.4、5.0或者6.0编写的巨量的Java类库和框架,
Scala
会经常性地针对这几个版本的Java进行测试。
Scala
可能也可以在更早版本的Java上运行,但
没有
经过正式的测试。
Scala
以BSD许可发布,并且数年前就已经被认为相当稳定了。 说了这么多,我们还
没有
回答一个问题:“为什么我要
使用
Scala
?”
Scala
的设计始终贯穿着一个理念: 创造一种更好地支持组件的语言。(《The
Scala
Programming Language》,Donna Malayeri) 也就是说软件应该由可重用的部件构造而成。
Scala
旨在提供一种编程语言,能够统一和一般化分别来自面向对象和函数式两种不同风格的关键概念。 藉着这个目标与设计,
Scala
得以提供一些出众的特性,包括: * 面向对象风格 * 函数式风格 * 更高层的并发模型
Scala
把Erlang风格的基于actor的并发带进了JVM。开发者可以利用
Scala
的actor模型在JVM上设计具伸缩性的并发应用程序,它会自动获得多核心处理器带来的优势,而不必依照复杂的Java线程模型来编写程序。 * 轻量级的函数语法 o 高阶 o 嵌套 o 局部套用(Currying) o 匿名 * 与XML集成 o 可在
Scala
程序中直接书写XML o 可将XML转换成
Scala
类 * 与Java无缝地互操作
Scala
的风格和特性已经吸引了大量的开发者,比如Debasish Ghosh就觉得: 我已经把玩了
Scala
好一阵子,可以说我绝对享受这个语言的创新之处。 总而言之,
Scala
是一种函数式面向对象语言,它融汇了许多的特性,而同时又运行于JVM之上。随着开发者对
Scala
的兴趣日增,以及越来越多的工具支持,无疑
Scala
语言将成为你手上一件必不可少的工具。
Scala
与Groovy的对比 一篇名为“
Scala
,Groovy的杀手? ”的博客对
Scala
和Groovy进行了对比:
Scala
和Groovy之间的核心区别在于前者是静态类型的。有些人可能争辩说这使得达到脚本化目标变得更加复杂了,而脚本化正是Groovy的动机。然而,
Scala
有完整的体系特征,这使Groovy看上去更像个玩具。比如,
Scala
有“sequence comprehensions”。该要素导致对算法的表述非常紧凑和强大。
Scala
还有更多被证明是非常有用的特性,如嵌套类,currying和代数类型模式匹配。它还支持类似于JDK1.5所增加的泛型和注解。这些还都只是冰山一角。
之后
,Derek Young撰文“
Scala
对比Groovy:静态类型是性能的关键”。在文中他举了一个实际的例子,试图说明针对同样的算法,
Scala
的性能远高于Groovy。 然而,
Scala
并不是尽善尽美的,它也有一些明显的缺陷。Rick Hightower在发表的一篇博客中,尖锐地批评了
Scala
的语法问题:
Scala
并不是更好的选择。在阅读了
Scala
的文档
之后
,我的想法是:虽然这种语言的特性听起来挺好,但是语法却让我想放弃。为什么事情非要为了不同而不同?
Scala
让Groovy看起来比以前更加美味可口。 憎恨是个很强烈的词。我恨
Scala
的语法。请不要再推进这种语法了。……
Scala
有好的思想吗?有。借用过来就行了…… 总而言之,
Scala
看起来像下一个被过度宣传的语言。只需要把其精华引入到Groovy中,然后扔掉那些糟糕的语法。我最喜欢的
Scala
特性是推理类型和强类型。C#3.0也有这些。(我不用C#,不见得我不喜欢它的一些特性。)
scala
编译
的
class
字节码实现
我们知道,
Scala
也是一种运行于Java虚拟机上的语言, 既然能够运行于虚拟机之上, 那么它必然可以
编译
成
class
文件
, 因为虚拟机只认
class
文件
。 所以,
scala
c
编译
器将.
scala
源
文件
,
编译
成
class
文件
, 然后这些
class
文件
被虚拟机加载并执行。 所以, 如果你对
class
文件
格式和java虚拟机足够了解的话, 那么学习
scala
语言就会
Scala
入门(3):
Scala
程序
编译
1. 入门程序 object Hello { def main(args:Array[String]) { println("Hello,
Scala
。") } } 对于包含 main 方法的 object 声明,引入了一个通常被称为单例对象(singleton object)的概念,也就是有且仅有一个实例 的类。 main 方法并
没有
声明为 static。这是因为
Scala
中不存在静态成员(无论方法还是属性,methods or fields)这一概
Hadoop生态社区
20,808
社区成员
4,690
社区内容
发帖
与我相关
我的任务
Hadoop生态社区
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
复制链接
扫一扫
分享
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章