scala
Scala编程方法简化版
1.变量常量
字符数字标识符:字母或者下划线开头,$
被认作字母
运算符优先级:
先乘除后加减
先算数,后移位,最后位运算
指针最优,单目优于双目
var 声明变量,val声明常量
1 | val hellostr="Hello World" |
在声明变量和常量不一定需要指定数据类型,没有指明时通过初始值推断。变量常量必须付初始值,否则会报错
可以用val声明一个元组
1 | val mr=("key",22) |
Scala与Java有相同的变量类型,但是首字母必须大写,因为是对象,例如Int,String,Boolean
可以直接用0x
表示16进制,0
表示8进制,表示Long
用L
或者l
作为后缀,表示float
用F/f
否则默认为double
1 | val x=41 |
单字符用‘ ’引用,特殊字符要添加转义字符\,双引号同理
Scala还提供一种原样字符内容输出方法,用“""
的方式来表述
2.流程控制与函数
if语句
if语句与C++相似,有if,if…else…,if…elseif…else
但if可以作为表达式使用:且可以直接赋值
1 | val x=if("hello"=="hell") 1 else 0 |
循环语句
while
Scala中while与C++同,唯一不一样的是有返回值且恒为Unit(相当于void,Unit=()
)
for
for循环Scala有自己的风格,基础格式为
1 | for(i<-表达式){ |
1.其中<-
称为生成器(generator),而for循环实际上是通过集合遍历来实现循环的
2.表达式调用RichInt
中的to,until
方法来实现遍历,例如:
1 | for(i <- 1 to 5) println("i="+i) |
3.如果希望集合右开,[1,5)则用1 until 5
1 | for(i <- 1 until (10,2)) print("i="+i) |
4.引入break:Scala没有break,continue,但实现类似操作有两种方法
1 | //引入scala.util.control.Breaks类 |
5.多重for循环:Scala支持for循环嵌套
6.for表达式:与yield配合使用执行完后有返回值:
1 | x =for(i <- 1 to 5) yield i/2 |
函数声明,定义和调用
包:
1 | //定义包 |
1 | //声明 |
类和对象
Scala用New来创建对象
类的第一个字母大写,方法的第一个字母小写
1 | import java.io._ |
类继承:extend 隐形类:impact
集合:数组、列表与映射
数组
1 | //声明 |
列表
1 | // 字符串列表 |
Map
•Scala中的映射是键/值对的集合。任何值可以根据它的键进行检索。键是在映射唯一的,但值不一定是唯一的。
•映射也被称为哈希表。有两种类型的映射,不可变以及可变的。可变和不可变的对象之间的区别在于,当一个对象是不可变的,对象本身不能被改变。
•默认情况下,Scala中使用不可变的映射。如果想使用可变集,必须明确地导入scala.collection.mutable.Map类。但是可以通过生成新的映射来对原来的值进行改变。
1 | val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF") |
基本操作:
方法 | 描述 |
---|---|
keys | 返回 Map 所有的键(key) |
values | 返回 Map 所有的值(value) |
isEmpty | 在 Map 为空时返回true |
使用++运算符或Map.++()来连接两个map ,Map合并时会移除重复的Key