Scala学习-01-变量与类型
Scala运行在jvm之上,可以调用Java类库和与Java框架交互,并将面向对象与面向函数结合在一起。
特点:
1 保留了静态类型检查。安全保障高。
2 函数式编程,更加灵活。
3 运行于jvm之上,可以直接编译成Java字节码,可以使用现成的大量Java类库。
Scala程序可以向其他解释型语言一样通过REPL开发,但是Scalal程序会被快速编译成字节码,然后将字节码交给Jvm执行。
REPL — 交互式解释器环境。
R(read)、E(evaluate)、P(print)、L(loop)
输入值,交互式解释器会读取输入内容并对它求值,再返回结果,并重复此过程。
Scala变量声明:
scala> var res=6*3 res: Int = 18 scala> var str="HelloWorld" str: String = HelloWorld
用val定义常量
Scala中推荐使用val,除非真的要改变这个值的时候。
scala> var res=6*3 res: Int = 18 scala> var str="HelloWorld" str: String = HelloWorld
注意:必须赋初值。因为编译器要根据初值给变量定义类型。
scala> var res=56
res: Int = 56
scala> res="test"
<console>:12: error: type mismatch;
found : String("test")
required: Int
res="test"
res: Int = 56
scala> res="test"
<console>:12: error: type mismatch;
found : String("test")
required: Int
res="test"
自定义类型
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常用类型
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通过方法做类型转换。
scala> 99.7.toInt res14: Int = 99 scala> "99.7".toDouble res15: Double = 99.7