Scala编程语言基础

一、概述

Scala是一种将面向对象和函数式编程结合在一起的高级语言,旨在以简洁、优雅和类型安全的方式表达通用编程模式。Scala功能强大,不仅可以编写简单脚本,还可以构建大型系统。
Scala运行于Java平台,Scala程序会通过JVM被编译成class字节码文件,然后在操作系统上运行。其运行时候的性能通常与Java程序不分上下,并且Scala代码可以调用Java方法、继承Java类、实现Java接口等,几乎所有Scala代码都大量使用了Java类库。

二、CentOS7安装Scala

1、下载Scala
到Scala官网https://www.scala-lang.org/download/下载Linux安装包scala-2.12.7.tgz

解压到指定目录:
$ tar -zxvf scala-2.12.7.tgz -C /opt/modules/

2、配置环境变量
export SCALA_HOME=/opt/modules/scala-2.12.7/
export PATH= P A T H : PATH: PATH:SCALA_HOME/bin

3、测试
CMD中执行scala -version命令

三、变量和数据类型

1.声明变量
Scala中变量的声明使用关键字val和var。
声明一个val字符串变量str:

scala> val str="hello scala"
str: String = hello scala

声明变量时指定数据类型:

scala> val str:String="hello scala"
str: String = hello scala

将多个变量放在一起进行声明:

scala> val x,y="hello scala"
x: String = hello scala
y: String = hello scala

2.数据类型
在Scala中,所有的值都有一个类型,包括数值和函数。
在这里插入图片描述
Scala中的值类型可以进行转换,且转换是单向的。

在这里插入图片描述
例如下面的例子,允许将Long型转换为Float型,Char型转换为Int型:

val x: Long = 987654321
val y: Float = x  //9.8765434E8 (注意在这种情况下会丢失一些精度)

val face: Char = '☺'
val number: Int = face  //9786

3.Scala中常用的表达式主要有条件表达式和块表达式。
条件表达式:

//条件表达式主要是含有if/else的语句块:
scala> val i=1
i: Int = 1

scala> val result=if(i>0) 100 else -100
result: Int = 100

//也可以在一个表达式中进行多次判断:
scala> val result=if(i>0) 100 else if(i==0) 50 else 10
result: Int = 100

块表达式:

//块表达式为包含在符号{}中的语句块:
scala> val result={
     | val a=10
     | val b=10
     | a+b
     | }
result: Int = 20

4.Scala中的循环主要有for循环、while循环和do while循环三种。

//for循环
scala> for(i<- 1 to 5) println(i)
//while循环
scala> var i=1
i: Int = 1

scala> while(i<5){
     |  i=i+1
     |  println(i)
     | }
//do while循环
scala> do{
     |    i=i+1
     |    println(i)
     | }while(i<5)

四、方法与函数

Scala中有方法与函数。Scala 方法是类或对象中定义的成员,而函数是一个对象,可以将函数赋值给一个变量。
1.方法

//方法的定义使用def关键字,语法:
def 方法名 (参数列表):返回类型={
   方法体
}
//例如,将两个数字求和然后返回,返回类型为Int:
def addNum( a:Int, b:Int ) : Int = {
      var sum = 0
      sum = a + b
      return sum
}
//代码简写,去掉返回类型和return关键字:
def addNum( a:Int, b:Int ) = {
      var sum = 0
      sum = a + b
      sum
}

2.函数
函数的定义与方法不一样,语法:
(参数列表)=>函数体
定义一个匿名函数,参数为a和b,且都是Int类型,函数体为a+b:

( a:Int, b:Int ) =>a+b

如果函数体有多行,可以将函数体放入一对{}中,并且可以通过一个变量来引用函数,变量相当于函数名称:

val f1=( a:Int, b:Int ) =>{ a+b }

对上述函数进行调用:

f1(1,2)

函数也可以没有参数:

val f2=( ) =>println("hello scala")

对上述函数进行调用:

f2()

3、方法与函数的区别
(1)方法是类的一部分,而函数是一个对象并且可以赋值给一个变量。
(2)函数可以作为参数传入到方法中。
例如,定义一个方法m1,参数f要求是一个函数,该函数有两个Int类型参数,且函数的返回类型为Int,方法体中直接调用该函数:

def m1(f: (Int, Int) => Int): Int = {
  f(2, 6)
 }

定义一个函数f1:

val f1 = (x: Int, y: Int) => x + y

调用方法m1,并传入函数f1:

val res = m1(f1)
println(res)

输出结果为8。
(3)方法可以转换为函数
当把一个方法作为参数传递给其它的方法或者函数时,系统将自动将该方法转换为函数。
例如,有一个方法m2:

def m2(x:Int,y:Int) = x+y

调用(2)中的m1方法,并将m2作为参数传入,此时系统会自动将m2方法转为函数:

val res = m1(m2)
println(res)

输出结果为8。
除了系统自动转换外,也可以手动进行转换。在方法名称后加入一个空格和一个下划线,即可将方法转换为函数:

val f2=m2 _
val res=m1(f2)
println(res)

输出结果为8。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值