Scala编程语言(Scala Programming Language)
v2.13.2 官方版- 软件大小:125 MB
- 更新日期:2020-10-13 11:09
- 软件语言:英文
- 软件类别:编程工具
- 软件授权:免费版
- 软件官网:待审核
- 适用平台:WinXP, Win7, Win8, Win10, WinAll
- 软件厂商:
软件介绍 人气软件 下载地址
Scala编程语言可以帮助用户在多个编辑器上使用,可以快速编辑新的代码文本,软件提供多个编程工具,fsc是快速的Scala编译器,可以通过该工具设计代码内容,将其部署到你的开发软件上就可以编辑代码,其中scala软件是运行测试工具,主要的功能就是运行Scala代码,当用户编辑代码完毕就可以在软件测试运行;scaladoc工具提供一个API文档生成功能,用户在开发新项目的时候可以通过该工具编辑开发文档,scalap工具是Scala类文件解码器,可以对文件转换编码,编译器具有一组标准选项,这些选项在当前开发环境中受支持,并且在将来的发行版中将受支持,如果你需要Scala编程语言就可以下载这款软件使用!
软件功能
无缝Java互操作
Scala运行在JVM上,因此Java和Scala堆栈可以自由混合,实现完全无缝的集成。
类型推断
所以类型系统感觉不那么静态。不要为类型系统工作。让类型系统为您工作!
并发与分发
对集合使用数据并行操作,对并发和分发使用actors,或者对异步编程使用future。
特点
结合Java风格接口的灵活性和类的强大功能。想想有原则的多重继承。
模式匹配
想想类固醇的“开关”。与类层次结构、序列等匹配。
高阶函数
函数是一级对象。以保证类型安全的方式组合它们。把它们用在任何地方,传递给任何人。
编译器选项
–verbose
输出有关编译器正在做什么的消息
–deprecation
指明是否应使用弃用信息来编译源;默认为off(接受的值是:on,off,yes和no)
从Scala 2.2.1版开始可用
–classpath
指定在何处查找用户类文件(在基于Unix的系统上,用冒号分隔的路径列表,在基于Windows的系统上,用分号分隔的路径列表)。这不会覆盖内置("boot")搜索路径。
默认的类路径是当前目录。设置CLASSPATH变量或使用-classpath命令行选项将覆盖默认值,因此,如果要在搜索路径中包括当前目录,则必须将其包括"."在新设置中。
–sourcepath
指定在何处查找输入源文件。
–bootclasspath
覆盖引导类文件的位置(可在其中找到标准内置类,例如“ scala.List”)。
–extdirs
覆盖已安装扩展的位置。
–encoding
指定源文件使用的字符编码。
默认值是特定于平台的(Linux :"UTF8"、 Windows :)"Cp1252"。在Scala解释器中执行以下代码将返回系统上的默认值:
scala> new java.io.InputStreamReader(System.in).getEncoding
安装方法
1、打开scala2.13.2.msi软件直接安装,点击下一步
2、提示软件的安装协议内容,点击接受协议
3、软件的安装地址设置界面,可以默认安装在C:\Program Files (x86)\scala\
4、软件准备完毕,点击install执行安装
5、提示软件的安装进度界面,等待主程序安装结束
6、scala成功安装到你的电脑,点击finish结束安装
环境配置
接下来需要配置Scala的环境变量,需要提醒一下在安装Scala之前需要安装jdk,并且配置JDK的环境变量。我们看一下本地安装完成后的目录,如下图所示。
最后我们配置Scala的环境变量,这台电脑-->右键“属性”-->高级系统设置-->环境变量,我们选择Path环境变量,并点击“编辑”按钮,我们将上图看到的Scala安装目录下的bean目录配置到Path环境变量中即可。
安装完成后我们需要检验是否安装成功,Win+R打开命令行,输入 scala -version,若出现Scala的版本信息则说明安装成功,如下图所示。
使用方法
使用Scala实现文件的拷贝
读取行:要读取文件的所有行,可以调用scala.io.Source对象的getLines方法:也可以对getLines应用toArray或toBuffer方法。
将这些行放到数组或缓冲当中,将文件内容读成一个字符串:val lines = source.mkString。
读取字符:要从文件中读取字符,可以直接把Source对象当做迭代器:如果想查看某个字符,但是不处理掉的话,调用source对象的buffered方法。
读取词法单元或数字:通过split方法对转化成行的文件内容进行划分,通过toInt或toDouble方法把字符转化成整数或浮点数。
写入文本:Scala没有內建的对写入文件的支持,要写入文本文件,可以使用java.io.PrintWriter.
值得一提的是FileChannel在使用前,必须要打开。需要通过InputStream/OutputStream/RandomAccessFile获取,BufferedReader/BufferedWriter获取不到。
使用说明
要求
您需要以下工具:
Java SDK。2.12.x和2.13.x的基准版本均为8。可能可以使用更高版本的SDK进行本地开发,但是CI将根据基准版本进行验证。
sbt(2.12.x分支上的sbt 0.13,2.13.x分支上的sbt 1)
MacOS和Linux可以工作。如果您使用Cygwin,Windows可能会工作。感谢社区提供的帮助,以确保构建在Windows上正常运行。
我们使用的工具
我们感谢以下OSS许可证:
JProfiler Java分析器
YourKit Java Profiler
IntelliJ IDEA
构建设置
基本
在常规开发过程中,以前发布的版本将构建新的Scala构建。简而言之,我们将先前的版本称为“ starr”:稳定的参考版本。用starr构建足以完成大多数更改。
但是,完整的Scala构建(由CI执行的bootstrap)需要两层。这保证了每个Scala版本都可以自行构建。如果更改Scala编译器的代码生成部分,则所做的更改将仅在引导后显示在库和编译器的字节码中。有关如何在本地进行引导构建的信息,请参见下文。
有关如何制定当前方案的历史记录,请参见 https://groups.google.com/d/topic/scala-internals/gp5JsM1E0Fo/discussion。
使用sbt构建
开始sbt会话后,您可以运行以下核心命令之一:
compile 编译所有子项目(库,反射,编译器,scaladoc等)
scala/scalac直接从sbt运行REPL /编译器(接受选项/参数)
enableOptimizer在启用Scala优化器的情况下重新加载构建。我们的发布是通过这种方式构建的。在提高编译器性能时启用此功能。启用优化程序后,构建速度会变慢,增量构建可能会不正确。
setupPublishCore它会运行,enableOptimizer并根据当前的Git SHA配置版本号。通常用作引导程序的一部分sbt setupPublishCore publishLocal && sbt -Dstarr.version= testAll
dist/mkBin生成转轮脚本(scala,scalac等)在build/quick/bin
dist/mkPack 在以下位置以Scala发行格式创建内部版本 build/pack
test运行JUnit测试,testOnly *immutable.ListTest运行一个子集
partest运行部分测试(接受选项,尝试partest --help)
scalacheck/test运行scalacheck测试,scalacheck/testOnly *FloatFormatTest运行一个子集
publishLocal在本地发布发行版(可以与scalaVersion其他sbt项目一起使用)
可选地set baseVersionSuffix := "bin-abcd123-SNAPSHOT" ,abcd123发布修订的git哈希值在哪里。您也可以使用自定义内容"bin-mypatch"。这会将版本号从更改为 2.12.2-SNAPSHOT更稳定的(2.12.2-bin-abcd123-SNAPSHOT)。
请注意,该-bin字符串标记版本与二进制兼容。在sbt中使用它将导致scalaBinaryVersion成为2.12。如果版本与二进制不兼容,我们建议使用-pre,例如2.13.0-pre-abcd123-SNAPSHOT。
(可选)set publishArtifact in (Compile, packageDoc) in ThisBuild := false 跳过生成/发布API文档(加快过程)。
如果命令导致错误消息,例如a module is not authorized to depend on itself,则可能是全局sbt插件导致了周期性依赖性。尝试停用全局sbt插件(也许通过在中暂时将其注释掉~/.sbt/1.0/plugins/plugins.sbt)。
沙盒
我们建议将本地测试文件保存在Scala存储库中sandbox列出的目录中.gitignore。
增量编译
请注意,对于Scala编译器代码库而言,sbt的增量编译通常过于粗糙,并且会重新编译太多文件,从而导致构建时间较长(请在 sbt#1104上查看该方面的进度)。同时,您可以:
使用IntelliJ IDEA进行增量编译(请参见下面的IDE安装程序)-其增量编译器不太保守,但通常是正确的。
本地引导
使用sbt执行引导
首先,将构建发布到本地或临时存储库中,
然后使用单独的sbt调用(使用先前构建的版本作为starr)来构建/发布实际的构建。
假设当前starr版本为2.12.0(在versions.properties中定义 ),而当前版本为2.12.0-SNAPSHOT (在build.sbt中定义)。要执行本地引导程序:
运行publishLocal(您可能想要指定自定义版本后缀,并跳过生成API文档,请参见上文)。
退出sbt并使用sbt -Dstarr.version=where 是您在本地发布的版本号启动一个新的sbt实例。
IDE设置
我们建议使用IntelliJ IDEA(请参阅 src / intellij / README.md)。
(金属也可以使用,但我们尚无相关说明或示例配置。非常欢迎在此区域提出拉取请求。)
为了使用IntelliJ的增量编译器:
dist/mkBin在sbt中运行以获取构建和运行器脚本build/quick/bin
在IntelliJ中运行“构建”-“创建项目”
现在,您可以编辑和构建IntelliJ,并使用脚本(编译器,REPL)直接测试您的更改。您也可以运行scala,scalac并partest 在SBT命令。启用“蚂蚁模式”(如上所述),以防止sbt的增量编译器在每次partest调用之前重新编译(太多)文件。
用户命令
名称
fsc– Scala 2语言的快速离线编译器
概要
fsc [ ]
参数
命令行选项。请参阅下面的选项。
一个或多个要编译的源文件(例如MyClass.scala)。
选项
脱机编译器支持以下所有选项scalac:
–reset
重置编译服务器缓存。
–shutdown
关闭编译守护程序。守护程序会根据需要尝试重新启动自身,但有时需要显式关闭。一个常见的示例是类路径上的jar是否已更改。
–server
在端口号处指定编译服务器主机。通常不需要此选项。请注意,主机名必须用于共享相同文件系统的主机。
–J
直接 传递给Java VM以进行编译守护进程。
描述
该fsc工具将Scala编译作业提交到编译守护程序。第一次执行该守护程序时,它将自动启动。在后续运行中,可以重新使用同一守护程序,从而加快编译速度。当重复使用相同的类路径进行编译时,该工具特别有效,因为编译守护程序可以重用编译器实例。
当类路径更改时,编译守护程序足够聪明,可以刷新其缓存的编译器。但是,如果类路径的内容发生更改(例如,由于升级库),则应使用显式关闭该守护程序-shutdown。
请注意,scala脚本运行程序默认情况下还将使用脱机编译器,具有相同的优点和警告。
例
以下会话显示由于使用脱机编译器而导致的典型加速。
> fsc -verbose -d / tmp test.scala
\&...
[端口号:32834]
[启动新的Scala编译服务器实例]
[类路径= ...]
[已加载目录路径... 692ms]
\&...
[解析test.scala]
\&...
[总计943ms]
> fsc -verbose -d / tmp test.scala
\&...
[端口号:32834]
[解析test.scala]
\&...
[总计60毫秒]
> fsc -verbose -d / tmp test.scala
\&...
[端口号:32834]
[解析test.scala]
\&...
[总计42ms]
> fsc -verbose -shutdown
[Scala编译服务器已退出]
环境
JAVACMD
指定java用于运行Scala代码的命令。可以将参数指定为环境变量的一部分;空格,引号等将直接传递给外壳进行扩展。
JAVA_HOME
指定JDK / JRE主目录。java除非JAVACMD设置了变量,否则该目录用于查找命令。
JAVA_OPTS
指定要传递给java定义的命令的选项JAVACMD。
例如,使用Java 1.5(或更高版本),可以如下配置JVM的内存使用情况: JAVA_OPTS="-Xmx512M -Xms16M -Xss16M"
退出状态
fsc如果成功编译指定的输入文件,则返回零退出状态。如果失败,则返回非零。
标准选项
–Dproperty=value
–Dproperty=value 直接 传递到运行时系统。
–J(flag)
直接 传递到运行时系统。
–P:plugin:opt
将选项传递给插件
–X
打印高级选项的摘要。
–bootclasspath
覆盖引导类文件的位置(可在其中找到标准内置类,例如“ scala.List”)。
–classpath
指定在何处查找用户类文件(在基于Unix的系统上,用冒号分隔的路径列表,在基于Windows的系统上,用分号分隔的路径列表)。这不会覆盖内置("boot")搜索路径。
默认的类路径是当前目录。设置CLASSPATH变量或使用-classpath命令行选项将覆盖默认值,因此,如果要在搜索路径中包括当前目录,则必须将其包括"."在新设置中。
–d
指定放置生成的类文件的位置。
–deprecation
发出警告和位置,以指示不赞成使用的API的使用情况。
从Scala 2.2.1版开始可用
–encoding
指定源文件使用的字符编码。
默认值是特定于平台的(Linux :"UTF8"、 Windows :)"Cp1252"。在Scala解释器中执行以下代码将返回系统上的默认值:
scala> new java.io.InputStreamReader(System.in).getEncoding
–explaintypes
详细解释类型错误。
–extdirs
覆盖已安装扩展的位置。
–feature
针对应显式导入的功能的使用发出警告和位置。
–g:{none,source,line,vars,notailcalls}
"none" 没有生成调试信息,
"source" 仅生成源文件属性,
"line" 生成源和行号信息,
"vars" 生成源代码,行号和局部变量信息,
"notailcalls"生成以上所有内容,并且不会执行尾部调用优化。
–help
打印标准选项的提要。
–javabootclasspath
覆盖Java引导类路径。
–javaextdirs
覆盖Java extdirs类路径。
–language:
启用一种或多种语言功能。
–no-specialization
忽略@specialize注释。
–nobootcp
不要对Scala jar文件使用引导类路径。
–nowarn
不产生警告
–optimise
通过对程序进行优化来生成更快的字节码。
删除了所有Scala特定功能的打印程序。
–sourcepath
指定源文件的位置。
–target:{jvm-1.8}
"jvm-1.8" 目标JVM 1.8(默认)
–toolcp
添加到跑步者类路径。
–unchecked
启用详细的未选中(删除)警告
未检查类型模式中的非变量类型参数,因为通过擦除将它们消除了
自Scala版本2.3.0起可用
–uniqid
在调试输出中唯一标记所有标识符。
–usejavacp
在类路径解析中使用java.class.path。
–usemanifestcp
在清单路径解析中使用清单。
–verbose
输出有关编译器正在做什么的消息
–version
打印产品版本并退出。
@
包含编译器参数(选项和源文件)的文本文件
高级选项
–Xcheckinit
包装字段访问器以在未初始化的访问上引发异常。
–Xdev
为使用Scala编译器的开发人员启用警告
–Xdisable-assertions
不产生任何断言和假设
–Xelide-below
@elidable如果方法优先级低于参数,则省略 对方法的调用。
–Xfatal-warnings
如果有任何警告,则使编译失败。
–Xfull-lubs
保留2.10之前的行为,即不太积极地截断最小上限。
–Xgenerate-phase-graph
生成相图(输出.dot文件)到fileX.dot。
–Xlint
启用建议的其他警告。
–Xlog-free-terms
在创建自由条款时打印消息。
–Xlog-free-types
当版本化生成自由类型时,打印一条消息。
–Xlog-implicit-conversions
每当插入隐式转换时,都要打印一条消息。
–Xlog-implicits
显示有关为什么某些隐式设置不适用的更多详细信息。
–Xlog-reflective-calls
生成反射方法调用时打印消息。
–Xmacro-settings:
宏的自定义设置。
–Xmain-class
清单的Main-Class条目的类(仅对-d 有用)。
–Xmigration:
警告自<版本>以来其行为可能已更改的构造。
–Xno-forwarders
不要在镜像类中生成静态转发器。
–Xno-patmat-analysis
不要执行穷举性/无法到达性分析。另外,请忽略@switch注释。
–Xjline
要使用的JLine绑定:emacs / vi / off。
–Xplugin:
从每个类路径加载一个插件。
–Xplugin-disable:
按名称禁用插件。
–Xplugin-list
打印已加载插件的提要。
–Xplugin-require:
如果未加载命名插件,则中止。
–Xpluginsdir
搜索插件档案的路径。
–Vprint:
在<阶段>之后打印出程序(请参见下文)。
–Vprint-icode[:]
在< phases >之后将内部icode记录到* .icode文件中(默认值:icode)。
–Vprint-pos
打印树的位置,作为偏移量。
–Vprint-types
打印树类型(调试选项)。
–Xprompt
在每个错误后显示提示(调试选项)。
–Xresident
编译器保持驻留状态,要编译的文件从标准输入中读取。
–Xscript
人气软件
-
redis desktop manager2020.1中文 32.52 MB
/简体中文 -
s7 200 smart编程软件 187 MB
/简体中文 -
GX Works 2(三菱PLC编程软件) 487 MB
/简体中文 -
CIMCO Edit V8中文 248 MB
/简体中文 -
JetBrains DataGrip 353 MB
/英文 -
Dev C++下载 (TDM-GCC) 83.52 MB
/简体中文 -
TouchWin编辑工具(信捷触摸屏编程软件) 55.69 MB
/简体中文 -
信捷PLC编程工具软件 14.4 MB
/简体中文 -
TLauncher(Minecraft游戏启动器) 16.95 MB
/英文 -
Ardublock中文版(Arduino图形化编程软件) 2.65 MB
/简体中文