Scala基础
1.seq[String]
用[]表示参数类型,java使用<>表示参数,因为Scala 允许以<命名方法和变量名,java不允许
2.支持range的类型:Char 、Int 、 Long 、 Float 、 Double 、BigInt(任一大小整数)、BigDecimal(任意大小浮点数)
//闭区间,步长2 1 to 10 by 2 //左闭又开,步长1 1 until 10
//字符根据ASCII码递增
'd' to 'a' by 1
3.Scala返回类型Unit类型,类似java void,但Unit类型是有值的,值为().
4.java的方法名在Scala中是保留字时,使用反引号
import java.util.Scanner.`match`
5.for yield for循环返回新的集合
val list2 = for {i <- list if(i.contains("a"))} yield i
6.可插入字符串
val a = "a" val b = 2f println(s"${a}bc") printf("%.2f\nb",b) println(f"${b}%.2f\nb")
7.模式匹配
在 case 子句中,以小写字母开头的标识符被认为是用来提取待匹配值的新变量。如果需要引用之前已经定义的变量时,应使用反引号将其包围。以大写字母开头的标识符被认为是类型名称
def checkY(y: Int) = { for { x <- Seq(99, 100, 101,"") } { val str = x match {
//判断是否等于形参y需加反引号,否则相当于匹配所有输入,并把输入赋予y case `y` => "found y!" //判断类型是否为整型 case i: Int => "int: "+i //匹配所有输入 case _ =>"unexpected" } println(str) }
8、for推导式
for{} yield 返回值类型为for中第一个生成器表达式的类型
for 推导式的语法实际上是编译器提供的语法糖,它会调用容器方法 foreach 、 map 、flatMap 以及 withFilter 方法
//result类型为Vector
val list = List("a","b","c","d")
val vector = Vector("A","B","C","D")
val result = for{ vector2 <- vector list2 <-list list3 <- list2 } yield list3 print(result) }
仅作为笔记使用,记录信息过于简洁。