Scala学习(一):Scala简介与Hello World!

一.Scala是什么

Scala是一门多范式的编程语言,类似于Java。设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。

二.环境准备(以Windows下安装Scala为例)

1.官网:http://www.scala-lang.org/  下载安装包:

imageimage

2.打开安装包,点击开始安装,点击next:

image

3.同意许可协议,点击next:

image

4.选择安装位置(默认安装C盘,可自行改变),点击next,install,完成安装:

imageimage

5.配置Scala环境变量,这样可以直接从命令行访问,配置过程和JDK类似

(1)在系统变量中新增SCALA_HOME变量,值是安装位置,这里是:F:\Program Files (x86)\scala

image

(2)编辑Path变量,在后面追加如下内容:;%SCALA_HOME%\bin 此处注意前面有一个分号

(3)保存更改,重新打开命令窗口,输入:scala –version,如果出现相关版本信息,则安装成功~

image

三.第一个Hello World

(一)命令行交互方式:

1.打开Scala命令行界面,输入以下内容:

scala> object HelloWorldTest{
     |   def main(args:Array[String]){
     |     println("Hello,Xiaotang!");
     |   }
     | }
defined object HelloWorldTest

image

上面的代码,包含一个main方法,打印输出"Hello,Xiaotang!"问候语

2.运行上面代码的结果:

scala> HelloWorldTest.main(null);
Hello,Xiaotang!

image

(二)文件代码运行方式:

使用任何文本编辑器,写好上面的代码,保存为HelloWorldTest.scala文件,下面以Sublime编辑器为例:

imageimage

打开命令行:

1.编译Scala文件:scalac HelloWorldTest.scala

编译成功后,多了class文件:

image

2.运行Scala应用:scala HelloWorldTest

运行结果:image 与上面命令行交互模式下的结果是一样的,运行成功~
注:

a.了解Java的童鞋可能会感到很熟悉,编译Java文件使用 javac 命令,运行Java文件生成的class文件使用 java 命令.

b.使用Scala来运行应用时,无需再调用HelloWorld.main(null),Scala 会自动执行指定类的main方法.

(三)Scala代码嵌入到脚本语言中运行方式(Linux下):

1.编写 runScalaTest.sh 脚本文件:

#! /bin/sh
exec scala "$0" "$@"
!#
object HelloWorldTest extends App{
  println("Hello,Xiaotang");
}
HelloWorldTest.main(null)

imageimage

注:【Linux中Shell变量 $#,$@,$0,$1,$2的含义】

$0
Shell本身的文件名

**$@
所有参数列表。**如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。

$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$-
使用Set命令设定的Flag一览
$*
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数
$#
添加到Shell的参数个数
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…,以此类推等等.

2.运行脚本:./runScalaTest.sh

若报如下错误:image

找不到scala的路径,这时需要指定scala的路径,如下:

image

3.运行上面脚本的结果:

image 结果与上面两种方式的结果是一样的,运行成功~

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Java修道之路,问鼎巅峰,我辈代码修仙法力齐天

<center<fontcolor00FF7Fsize5face"黑体"代码尽头谁为峰,一见秃头道成空。</font<center<fontcolor00FF00size5face"黑体"编程修真路破折,一步一劫渡飞升。</font众所周知,编程修真有八大境界:1.Javase练气筑基2.数据库结丹3.web前端元婴4.Jav

Scala学习(一):Scala简介与Hello World! - HelloWorld