一、主要内容
-
变量和常量
-
运算符
二、代码示例
object scalaBasic {
def main(args: Array[String]): Unit = {
// Part1: 关于变量
// 1.常量的值不可修改
val a:Int = 1
// a = 3 会报错
// 2. 变量的值可以修改
var b: Int = 10
b = 100
println(b) // 100
//3. 变量的类型可以自动推断
var c = "Maple"
println(c.getClass) //class java.lang.String
// c = 100 //但是变量的类型确定之后,不可再更改 ,报错:type mismatch;
//4. 低精度向高精度转换
var d = 12.0
val result = b + d
println(result.getClass) //double
//5.变量声明必须有初始值
//var f
// 6.多个变量一起声明
val x,y,z = 100
println(x,y,z) //(100,100,100)
// 7.引用类型
// 7-1 .可变类型
var p1 = new Person("张三")
println("p1 before:",p1) //(p1 before:,Person@566776ad)
println("p1.name before:",p1.name) //(p1.name before:,张三)
p1.name = "李四"
println("p1.name after:",p1.name) //(p1.name after:,李四)
p1 = null
println("p1 after:", p1) //(p1 before:,Person@566776ad)
// 7-2 p2定义成常量
val p2 = new Person("张三")
// p2 = null 报错
p2.name = "Kelly"
println("p2.name",p2.name)
// 7-3 类中的变量不可变
val s1 = new Student("Max")
// 因为s1中的name是常量,导致虽然s1定义成变量,但仍然不可修改其值
// s1 = null 报错
// s1中的name是常量,不可修改
// s1.name = "Avery"
// Part2: 关于运算符
// 1. Scala中的'运算符'本质其实是方法
println( 10 + 10 )
println(10.+(10))
// 2.Scala中建议使用方法进行类型转换
println(10.toByte)
println(10.toDouble)
// 3.Scala中没有++和--操作
// 替换方式如下
var i = 10
i+= 10
println('i',i)
//Part3: 输入输出
// 3-1 字符串模版s
val name = "Maple"
val age = 10
println(s"我叫${name},今年${age}岁")
// 3-2 字符串模版f""
val name2 = "Maple"
val weight = 10.01233
println(f"我叫${name2},体重为${weight}%2.2f") //我叫Maple,体重为10.01
// 3-3 三引号换行输出
val school = "广州中学"
var sql =
s"""
|select grade
|,max(age) as max_age
|,avg(height) as avg_height
|from students
|where school = '${school}'
|group by grade
|""".stripMargin
println(sql)
}
}
// name定义成可变类型
class Person(var name:String)
// name定义成不可变类型
class Student(val name:String)