基础的使用
- 1、注释
- 2、代码规范
- 3、变量和常量
- 4、标识符的命名规范
- 5、字符串输出
- 6、 键盘输入
1、注释
Scala 注释使用和 Java 完全一样。
1. 单行注释://
2. 多行注释:
3. 文档注释:
2、代码规范
1. 使用一次 tab 操作,实现缩进,默认整体向右边移动,用 shift+tab 整体向左移
2. 或者使用 ctrl + alt + L 来进行格式化
3. 运算符两边习惯性各加一个空格
4. 一行最长不超过 80 个字符,超过的请使用换行展示,尽量保持格式优雅
3、变量和常量
常量:在程序执行的过程中,其值不会被改变的变量
Java 变量和常量语法
变量类型 变量名称 = 初始值 int a = 10
final 常量类型 常量名称 = 初始值 final int b = 20
Scala 变量和常量语法
var 变量名 [: 变量类型] = 初始值 var i:Int = 10
val 常量名 [: 常量类型] = 初始值 val j:Int = 20
注意:
1. 声明变量时,类型可以省略,编译器自动推导,即类型推导
2. 类型确定后,就不能修改,说明Scala是强数据类型语言
3. 变量声明时,必须要有初始值
4. 在声明/定义一个变量时,可以使用 var 或者 val 来修饰,var 修饰的变量可改变,val 修饰的变量不可改
5. var 修饰的对象引用可以改变,val 修饰的对象则不可改变,但对象的状态(值)却是可以改变的
object Test01 {
def main(args: Array[String]): Unit = {
// p1 是 var 修饰的,p1 的属性可以变,而且 p1 本身也可以变
var p1 = new Person()
p1.name = "dalang"
p1 = null
// p2 是 val 修饰的,那么 p2 本身就不可变(即 p2 的内存地址不能变),但是,p2 的属性是可以变,因为属性并没有用 val 修饰。
val p2 = new Person()
p2.name="jinlian"
//p2 = null // 错误的,因为 p2 是 val 修饰的
}
}
class Person{
var name:String="jinlian"
}
4、标识符的命名规范
Scala 对各种变量、方法、函数等命名时使用的字符序列称为标识符。即:凡是自己可以起名字的地方都叫标识符。
命名规则:
Scala 中的标识符声明,基本和 Java 是一致的,但是细节上会有所变化,有以下三种规则:
1. 以字母或者下划线开头,后接字母、数字、下划线
2. 以操作符开头,且只包含操作符(+ - * / # !等)
3. 用反引号`....`包括的任意字符串,即使是 Scala 关键字(39 个)也可以
注意:
var _: String = "hello" // error 单独一个下划线不可以作为标识符,因为_被认为是一个方法
5、字符串输出
基本语法:
1. 字符串,通过+号连接
2. printf 用法:字符串,通过%传值
3. 字符串模板(插值字符串):通过$获取变量值
object Test2 {
def main(args: Array[String]): Unit = {
var name: String = "jinlian"
var age: Int = 18
//(1)字符串,通过+号连接
println(name + " " + age)
//(2)printf 用法字符串,通过%传值。
printf("name=%s age=%dn", name, age)
//(3)字符串,通过$引用
//多行字符串,在 Scala中,利用三个双引号包围多行字符串就可以实现。
//输入的内容,带有空格、t 之类,导致每一行的开始位置不能整洁对齐。
//应用 scala 的 stripMargin 方法,
// 在 scala 中 stripMargin 默认是“|”作为连接符,//在多行换行的行头前面加一个“|”符号即可。
val s =
"""
|ximenqing
|and
|jinlian
""".stripMargin
println(s)
//如果需要对变量进行运算,那么可以加${}
val s1 =
s"""
|ximenqing
|name="$name" and age=${age+2}
""".stripMargin
println(s1)
val s2 = s"name=$name"
println(s2)
}
}
6、 键盘输入
基本语法:
StdIn.readLine()
StdIn.readShort()
StdIn.readDouble()
object Test3 {
def main(args: Array[String]): Unit = {
// 1 输入姓名
println("input name:")
var name = StdIn.readLine()
// 2 输入年龄
println("input age:")
var age = StdIn.readShort()
// 3 输入薪水
println("input sal:")
var sal = StdIn.readDouble()
// 4 打印
println("name=" + name)
println("age=" + age)
println("sal=" + sal)
}
}