加载中...
Scala基础语法
发表于:2021-09-01 | 分类: 《7天极速掌握Scala》课程笔记
字数统计: 630 | 阅读时长: 2分钟 | 阅读量:

如何申明变量和常量

  • val:常量

  • var:变量

    1
    2
    3
    4
    //数据类型如果不指定,会自动根据表达式来推断
    val answer = 0
    //也可以指定数据类型
    val answer: Int = 1

    那么Scala有哪些数据类型呢?

  • 基本数据类型:Byte,Char,Short,Int,Long,Float,Double,Boolean

  • 增强版数据类型:StringOps、RichInt、RichChar、RichDouble等(比基本类型多了上百种功能)

    • 就以RichInt为例:1.to(10) 相当于Range 1 to 10

Scala的 if 和Java是不同的

区别在于Scala的if是有返回值的,Java的if是没有的
举个例子:val ret = if(18>1) 1 else 0 这里 ret 会接收 if 的返回值 1


Scala的for和Java也不同,while相同

for(i <- 1 to/until n) 意思就是 i 从1到n/n-1迭代
甚至可以迭代字符串中每个字符for(c <- "string") println(c)
还有高级for循环:

  • if守卫:for(i <- 1 to 10 if i % 2 == 0) println(i) 就是把if判断写在for里面不满足就continue
  • yield:for(i <- 1 to 3) yield i * 2 可以得到Vector(2,4,6) 就是在for循环中得到的数据组合成一个集合

Scala中的数组和Java类似

  • val array = new Array[type](数组长度)
  • 也可以这样写 val array = Array("....",23,"..")
  • 甚至还有像ArrayList那样的可变长度的数组 val ab = new ArrayBuffer[Int]()
  • 还有一个元祖tuple也很常用,可存不同类型的数据 val t = (..,...,...); 并且可以用t._i来获取指定数据

Scala中也有集合Set、List、Map

  • val s = Set(1,2,3)这样就直接创建了一个不可变的Set集合,还有HashSet、LinkedHashSet、SortedSet
  • val l = List(1,2,3) 这样就直接创建了一个不可变的List集合
    • List有很多方法,如l.headl.tailfor(i <- l) println(i)
    • ListBuffer是一个可变型的List集合val lb = scala.collection.mutable.ListBuffer[Int]()
  • val m = Map(("A",1),("B",2)) 这样就直接创建了一个不可变的Map集合
  • 需要注意的是:
    • 如果创建的是一个可变型的集合,添加删除元素可以直接用 +=、-=
    • 默认用Set、List、Map创建的都是不可变的集合,可以用Scala.collection.mutable.Set/ListBuffer/Map[type](参数列表)

Scala的函数和Java的方法也不一样

1
2
3
4
5
6
7
8
9
10
11
12
//需要返回值的函数
def fun(A:type,B:type) = {
...
...
A,B 最后一行就是返回值,不需要return
}

//还有不需要返回值的函数
def fun(A:type,B:type) { //没有=号就是没有返回值
...
...
}
上一篇:
Scala面向对象
下一篇:
初识Spark与工作原理
本文目录
本文目录