上QQ阅读APP看书,第一时间看更新
1.1 Scala语言的特色
Scala语言最初并没有引起开发者的重视,但随着“大数据时代”的到来,人们发现两个大数据处理框架Spark和Kafka竟都是用Scala语言开发出来的。至此,Scala这门“沉睡”已久的语言逐步进入大数据开发者的眼帘。
Scala语言表达能力强,能用少量代码实现需要用大量Java代码才能实现的功能。比如,我们要创建一个学生类,属性包括学生学号、学生姓名、学生年龄、班级信息。要实现这个功能,Java代码如下。
public class Student { //学生类
private int studentNum; //学生学号
private String studentName; //学生姓名
private int studentAge; //学生年龄
private String classInfo; //班级信息
public int getStudentNum() {
return studentNum;
}
public void setStudentNum(int studentNum) {
this.studentNum = studentNum;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public int getStudentAge() {
return studentAge;
}
public void setStudentAge(int studentAge) {
this.studentAge = studentAge;
}
public String getClassInfo() {
return classInfo;
}
public void setClassInfo(String classInfo) {
this.classInfo = classInfo;
}
/**
* 重写toString 方法
* @return String
*/
@Override
public String toString() {
return "Student{" +
"studentNum=" + studentNum +
", studentName='" + studentName + '\'' +
", studentAge=" + studentAge +
", classInfo='" + classInfo + '\'' +
'}';
}
}
要实现与上面Java代码相同的功能,Scala代码如下。
case class Student( var studentNum:int, var studentName:String, var studentAge:int, var classInfo:String) //学生类
可以看到,Scala代码更为简洁,可以极大地提高开发效率。此外,Scala兼容Java,可以访问庞大的Java类库。我们在Scala中调用Java程序的Scanner类并进行对话,代码如下。
scala> import java.util.Scanner
import java.util.Scanner
// 光标出现后输入 hello scala
scala> println("hello world :" + new Scanner(System.in).nextLine())
hello world :hello scala