一、编程框架
Scala语言是在JVM上运行的,兼容Java语法
-
区分大小写 - Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不同的含义。
-
类名 - 对于所有的类名的第一个字母要大写。
如果需要使用几个单词来构成一个类的名称,每个单词的第一个字母要大写。 -
方法名称 - 所有的方法名称的第一个字母用小写。
如果若干单词被用于构成方法的名称,则每个单词的第一个字母应大写。
示例:def myMethodName() -
Scala 使用 package 关键字定义包,在Scala将代码定义到某个包中有两种方式:
第一种方法和 Java 一样,在文件的头定义包名,这种方法就后续所有代码都放在该包中。
示例:def myMethodName()第二种方法有些类似 C#,以在一个文件中定义多个包。如:
package com.runoob { class HelloWorld }
-
引用
Scala 使用 import 关键字引用包。
示例:import java.awt.Color // 引入Color
1、简单框架
object Hello {
def main(args:Array[String]): Unit={
println("Hello Scala!") //Scala语法
System.out.println("Hello Scala!") //Java语法
}
}
2.对象及伴生对象结构框架
package com.ggg.ST.Test1
class Student (var name: String,var age: Int){
def printInfo(): Unit = {
println(name +" "+ age + " " + Student.school)
}
}
object Student{
val school = "xmdx"
def main(args: Array[String]): Unit = {
val alice = new Student("alice",20)
val bob = new Student("bob", 23)
alice.printInfo()
bob.printInfo()
}
}
二、注释
Scala和Java注释一样
/**
* 文档注释
*/
//单行注释
/*
多行注释
*/
三、常量和变量
1.Scala基本语法
Scala中常量使用val 开头、变量使用var开头(数据类型比较明显的可以自动识别出来,可以不写)
基本语法:
var 变量名 [:变量类型] = 初始值 var i:Int =10
val 常量名 [: 常量类型] = 初始值 val j: Int = 20
注意:
1.能用常量的地方不用变量
2.var 修饰的对象引用可以改变,val 修饰的对象则不可改变,但对象的状态(值) 却是可以改变的。(比如:自定义对象、数组、集合等等)
//声明一个变量的通用语法
var a : Int = 10
//(1)声明变量时,类型可以省略,编译器自动推导,即类型推导
var age = 18
age = 30
//(2)类型确定后,就不能修改,说明 Scala 是强数据类型语言。
// age = "sa"
//(3)变量声明时,必须要有初始值
2.常量和变量名规则
Scala和Java的命名规则基本一致 ,但细节上还是略有不同
(1)必须以字母或下划线开头,后接字母、数字、下划线
(2)以操作符开头,只能包含操作符(+-*/#!等)
(3)用反引号`......`包括的任何字符串,包括Scala的关键字,都可以当标识符使用
四、字符串输出
1.基本语法
(1)字符串拼接法:println(name+" " +age)
(2)类似C语言的printf,通过%传值。printf("name=%s age=%d \n ",name ,age)
(3)字符串模板(插值字符串):通过$获取变量值printf(s"祝${name}的${age}生日快乐")
插入字符串(多行):使用''' .....''' 三个上引号包围多行字符串,在每一行前添加竖线“|”可实现以竖线为开头进行对其。其字符串输出的内容与编写时一致。
Scala的数据类型:
注意:表中列出的数据类型都是对象,也就是说scala没有java中的原生类型。在scala是可以对数字等基础类型调用方法的
整型字面量
整型字面量用于 Int 类型,如果表示 Long,可以在数字后面添加 L 或者小写 l 作为后缀。
示例:val i :Int = 20
示例:val i :Long = 50l
浮点型字面量
如果浮点数后面有f或者F后缀时,表示这是一个Float类型,否则就是一个Double类型的。实例如下
示例:val i :Float = 50.03f
示例:val i :Double = 50.003
布尔型字面量Boolean
布尔型字面量有 true 和 false。
字符字面量
在 Scala 字符变量使用单引号 ' 来定义
字符串字面量
在 Scala 字符串字面量使用双引号 " 来定义
多行字符串的表示方法
多行字符串用三个双引号来表示分隔符,格式为:""" ... """。
例:
val sql = s""" |select * |from | student |where | name = ${name} |and | age > ${age} |""".stripMargin println(sql)
运行结果:
Null 值
空值是 scala.Null 类型。
Scala.Null和scala.Nothing是用统一的方式处理Scala面向对象类型系统的某些"边界情况"的特殊类型。
Null类是null引用对象的类型,它是每个引用类(继承自AnyRef的类)的子类。Null不兼容值类型。