1.1 Scala概述
1.1.1 什么是Scala?
- Martin Odersky在2001年开始开发Scala
- Sca(scalable)La(language)
- 设计目标
- 消除常见分布式处理的bugs
- 让编程框架做规模决策
- 让程序员根据需要进行控制
1.1.2 为什么学习Scala?
- 可扩展
- 面向对象
- 函数式编程
- 兼容JAVA
- 类库调用
- 互操作
- 语法简洁
- 代码行短
- 类型推断
- 抽象控制
- 静态类型化
- 可检验
- 安全重构
- 支持并发控制
- 强计算能力
- 自定义其他控制结构
1.1.3 Scala环境
- IDE(安装->下载scala插件->自定义配置)
- Eclipse(原生支持,使用比较复杂)
- IntelliJ(价格昂贵)
- NetBeans(程序可靠但插件笨重)
- CMD(安装配置JAVA环境->下载解压Scala->系统环境添加Scala路径)
- 通过CMD调用Scala解释器
- 方便、简单,易上手
1.1.4 声明与定义(赋值)
- val,常量声明:val x:T val x:T=e
- var,变量声明: var x:T var x:T=e
- 类型省略(默认类型): val x=e var x=e
- 声明省略(连续声明):
- val x1,x2,x3 等价于 val x1;val x2;val x3
- var x1,x2,x3:T=e等价于var xn:T=e
- def,函数声明:def abc(xn:T):T*=e
- 无参函数: def adder()=e
- type,类型声明
- class,类声明
- object,对象声明
1.2 数据类型
- 整型:Int,Long,Short,Byte
- 浮点型:Double,Float
- 布尔型:Boolean(true/false)
- 字符值:
- Char:16位无符号Unicode字符
- String:Char序列
- 除String归于java.lang包外,其他基本类型均是scala包的成员
- Int等基本类型的全名是scala.Int,但包scala同java.lang的所有成员都能自动引用,因而能再实际使用时简化
1.2.1 整型
- 整形值格式有十进制和十六进制
- 十进制:数开始于非零数字
- val one=15 (非零数字为1-9)
- 十六进制:数开始于0x或0X
- val two=0xABC (非零数字为1-9同大写A-F)
- 默认为Int类型,要声明、定义Long类型的值,除直接声明外,亦能在数字后增加L或l,Short同Byte需直接声明
- val four=0xABCDL
1.2.2 浮点型和布尔值
- 浮点型
- 浮点格式为十进制、小数点、E或e及指数部分
- 一般浮点数默认为Double类型,要声明Float类型除直接声明外,能在数字后增加F或f
- 布尔值
- val right=true
-
val wrong=false
1.2.3 字符型
- 字符型
-
Char
- 单引号间的任意Unicode字符 val a=‘A’
- 单引号内前缀反斜杠的八进制、十六进制表字符编码数字
- val b=‘\321’ 八进制,从\0到\377
-
val c=‘\u0042’ 十六进制,实际上是scala中通用的转义语法
-
String
- 双引号间的任意Unicode字符串
- val d=“ABCD”
-
val e=“\u0042\\u0041”
- 双引号间的任意Unicode字符串
-
1.3 scala环境准备和基本类型
1.3.1 scala环境安装
- 安装jdk
- 下载jdk-8u151-windows-x64.exe并安装好
- 解压scala
- 下载scala-2.11.7.zip并解压
-
环境变量配置
- 新建
-
添加scala和java jdk的bin目录
-
-
测试是否可用
1.3.2 基本类型
scala> println("hello scala")
hello scala
scala> val v4:Short = 45
v4: Short = 45
scala> val v5 = 1234l
v5: Long = 1234
scala> val v1 = 12
v1: Int = 12
scala> val v7:Byte = 23
v7: Byte = 23
scala> val v8 = 12.12345
v8: Double = 12.12345
scala> val v8 = 12.12345f
v8: Float = 12.12345
scala> val v9 = 1.212345e2
v9: Double = 121.2345
scala> val v9 = 1.212345e1
v9: Double = 12.12345
scala> val v10 = 'A'
v10: Char = A
scala> val v11 = '\u0041'
v11: Char = A
scala> val v12 = "abcd"
v12: String = abcd
大数据视频推荐:
腾讯课堂
CSDN
大数据语音推荐:
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通