Scala

1. Scala 基本概念
Scala是一门多范式的编程语言,一种类似java的编程语言 [1] ,设计初衷是实现可伸缩的语言 [2] 、并集成面向对象编程和函数式编程的各种特性。——摘自百度百科

a. Scala 的特点

主要有:面向对象、函数式编程、静态类型、扩展性、并发性等等,Scala代码是运行于 JVM(Java 虚拟机)上的,可以跟 Java 代码无缝兼容。Scala与Java语言类似,如果有Java基础,学习起Scala语言是比较顺手的,特别是在Java8上引入了Lambda 表达式新特性,与Scala的函数式编程语言就更加相似了。

b. Scala 的地位
分布式计算引擎 Spark 主要是由 Scala 编写而成,其中有小部分的 Java ;分布式流处理平台 Kafka 和分布式处理引擎 Flink 也是由 Scala 和 Java编写的;学会 Scala 编程是大数据领域必备的技能。

2. Scala 交互式命令行
想要执行Scala代码可以通过交互式命令方式进行,与 MySQL、Python 等类似。
如果在你本地电脑上安装好了Scala,可以直接运行,如Windows系统:

如果配置了环境变量,也可以直接在运行界面上输入scala,然后进入执行界面。

输入简单的代码:

scala> 1 + 1
res0: Int = 2
scala>
1
2
3
代码解释:res0 是解释器自动创建的变量,是表达式的计算结果。类型为 Int ,值为 2。

在Linux或者Mac也一样,直接输入scala即可进入交互式命令行模式:

退出只需要按 Ctrl + D 即可。

0x03 Scala 基本语法
在 Scala 命令行中执行的好处是简单方便,可以快速得到结果,还可以看到返回的类型,如上面的1+1运算,可以看到返回的结果为Int类型,对于初学者比较友好,所以我们接下来主要是在命令行中执行。

1. 基础语法
def HelloWorld() {
    println("Hello, shaonaiyi!") 
}
HelloWorld()
1
2
3
4
复制过去,然后回车,即可显示如下结果:

解释:

Scala 语句末尾是不需要分号(;)结束的,当然加也可以;Java 是要以分号(;)结束。
def main(args: Array[String]),main 方法是 Scala 程序的入口,与 Java 一样,每个 Scala 程序都必须定义的。
提示:

如果输入错了,可以多按几个回车键退出,然后重新输入。
2. 标识符
对象,类,变量和方法的名称称为标识符。

字母数字标识符
关键字不能用作标识符,标识符区分大小写。

在 Scala 中标识符只能包括字符、数字和下划线,并且只能以字符和下划线开头,如:hi、_shao、naiyi_888等等。

$字符是Scala中的保留关键字,不应在标识符中使用。

2. 运算符标识符

运算标识符由一个或多个运算符组成,运算符是可以打印的 ASCII 码,比如:+、*、-、/、?、:、~等等。

运算标识符有:+、++、:::、<?>、:>等等。

混合标识符
混合标识符由一个字符数字标识符、下划线和一个运算标识符组成,比如:unary_+、var_=。在这里,unary_+定义了一个一元+运算符,myvar_=用来作为方法名称定义了一个赋值运算符。

文字标识符
用``(键盘左上角数字1左边按键)符号包含任意字符都是文字标识符,如:

`shaonaiyi`
3. 注释
Scala 中的注释和 Java 中的注释一样:

object HelloWorld {
    /*
     * 这是块注释
     * 这是块注释
     */
    def main(args: Array[String]) {
        // 这是行注释
        println("Hello, shaonaiyi")
    }
}
1
2
3
4
5
6
7
8
9
10
4. 数据类型
Scala 中的数据类型和 Java 完全一样,占用内存和精度也一样。如下表:

数据类型    描述
Byte    8 位有符号值,范围:-128~127
Short    16 位有符号值,范围:-32768~32767
Int    32 位有符号值,范围:-2147483648~2147483647
Long    64 位有符号值,范围: -9223372036854775808~9223372036854775807
Float    32 位 IEEE754 单精度浮点数
Double    64 位 IEEE754 双精度浮点数
Char    16 位无符号 Unicode 字符,范围:U+0000~U+FFFF
String    字符串
Boolean    布尔值:true / false
Unit    表示没有值
Null    空或空引用
Nothing    每一个其他类型的子类型,包括无值
Any    任何类型的超类型,任何 object 都是 Any 类型的
AnyRef    任何引用类型的超类型
说明:上表列出的数据类型都是对象,Scala没有Java中的原生类型,在Scala是可以对数字等基础类型调用方法的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值