Scala 运行在 jvm 之上,可以调用 Java 类库和与 Java 框架交互,并将面向对象与面向函数结合在一起。
特点:
1 保留了静态类型检查。安全保障高。
2 函数式编程,更加灵活。
3 运行于 jvm 之上,可以直接编译成 Java 字节码,可以使用现成的大量 Java 类库。
Scala 程序可以向其他解释型语言一样通过 REPL 开发,但是 Scalal 程序会被快速编译成字节码,然后将字节码交给 Jvm 执行。
- REPL — 交互式解释器环境。
- R(read)、E(evaluate)、P(print)、L(loop)
- 输入值,交互式解释器会读取输入内容并对它求值,再返回结果,并重复此过程。
- scala> var res=6*3
- res: Int = 18
- scala> var str="HelloWorld"
- str: String = HelloWorld
Scala 中推荐使用 val,除非真的要改变这个值的时候。
- scala> var res=6*3
- res: Int = 18
- scala> var str="HelloWorld"
- str: String = HelloWorld
注意:必须赋初值。因为编译器要根据初值给变量定义类型。
scala> var res=56
- scala> var res : String = "HelloWorld"
- res: String = HelloWorld
- scala> res+"Scala"
- res11: String = HelloWorldScala
格式和 java 有一定的区别。
Java: String res
Scala: res : String
在 Java 中每一行都要用 ";" 分隔,Scala 中只有在一行代码多条语句的情况下使用 ";"
- val xmax,
- ymax = 100 // 将xmax?和max设为100
- var greeting, message: String = null
- // greeting?message都是字符串,被初始化为null
- scala> 1.toString()
- res12: String = 1
- scala> 1.to(10)
- res13: scala.collection.immutable.Range.Inclusive = Range 1 to 10
Scala 中的 int double…… 都是类,并且 Scala 并不刻意区分基本类型和引用类型
在 Scala 中,包装类型的转换由 Scala 编译器完成,并不需要程序员考虑。
Scala 通过方法做类型转换。
- scala> 99.7.toInt
- res14: Int = 99
- scala> "99.7".toDouble
- res15: Double = 99.7
来源: http://www.bubuko.com/infodetail-1992736.html