AiTi修炼|重剑无锋,拈花微笑 | IT修炼,技术fans.重剑无锋,拈花微笑才是最高境界,聊以此站记录一些个人学习、思考以及感悟Java,Scala,Spark,Hadoop,Storm,Nodejs,RSpark,Storm,Hbase,Hive,Flume等IT技术的历程 | Page 24
  • Home
Header
Header
$pageNumDef = 0;

认识Scala的类shell解释器

安装完scala应用程序之后,就通过scala提供的解析器进行实践学习了,scala解析器类似于linux的shell解释器,是学习scala最简单快捷的方式。

在命令窗口输入scala,进入scala解释器界面如下(注意若要在命令窗口可以直接执行scala命令则需要进行环境变量配置,否则需要在scala安装目录进行,避免出现找不到命令路径问题),熟悉python或者linux的会感觉该解析器有种似曾相识的感觉:

C:\Users\Administrator>scala

Welcome to Scala version 2.11.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_25).

Type in expressions to have them evaluated.

Type :help for more information.

scala>

在scala解析器中可以直接进行简单数学计算,下面以计算程序员的年薪为例子,程序员每月工资分为固定工资200元(程序员的工资好低),本科学历工资为250元,绩效工资为1001元乘以工作绩效,社保医保等扣除400元,计算某程序员D在6月份工作绩效评级为1.3的收入是多少?(简单的小学计算)

在scala解析器中输出200+250+1001*1.3-400,按回车键进行计算,结果为res1:Double =1351.3

scala> 200+250+1001*1.3-400

res1: Double = 1351.3

其中表达式以res开头的字符串为scala本身默认产生的(若用户定义的话,则会显示用户定义名称)存储计算的结果对象,“:Double”中“:”表示该表达式的数据类型为Double类型,是scala根据用户输入信息自动推断类型得到的,“=”后面表示计算结果值。(从实践的结果看,scala还是比较聪明的,自动返回的计算结果类型为Double类型,要是被搞成Int等其他类型的话,就会导致本来就少的可怜的工资,被取整,丢失精度),另外我们会发现与java不同,我们并不用显式得定义数据类型,而计算结果自动映射为Double类型,其指代了scala包的类Double,Scala提供了信息隐藏机制,类似java利用全局命名空间进行分区。

另外比较有趣的是res1识别符是可以在后续继续使用的,如我们要再继续若该程序员一年的绩效都是1.3,则请一年的收入为res1*12即可。

scala> res2*12

res3: Double = 16215.599999999999

rscala.com版权所有,本文认识Scala的类shell解释器
转载请注明出处:http://rscala.com/index.php/77.html