Scala简介:
Scala语言是一门纯粹面向对象的语言,Scala是运行在JVM上的,所以必须确认环境中安装了java。
特征:(1)面向对象(2)函数式编程(3)静态类型(4)Scala是可扩展的
学习连接:http://www.runoob.com/scala/scala-tutorial.html
基本语法:
Scala 使用 import 关键字引用包。
类名 - 对于所有的类名的第一个字母要大写。如果需要使用几个单词来构成一个类的名称,每个单词的第一个字母要大写。
def main(args: Array[String]) - Scala程序从main()方法开始处理,这是每一个Scala程序的强制程序入口部分。
注释:
多行注释

/**/

单行注释

//

Scala数据类型:
Scala语言
多行字符串用三个双引号来表示分隔符,格式为:""" … “”"。
常量与变量:
val定义常量,一经定义不可重新赋值。
var定义变量,可以重复赋值同类型的值。

val a:Int=2;
var b:String="wuyou";
print(a+" "+b);

表达式:
Scala不支持自增、自减运算符。
数组的定义:
数组是一种存储了相同类型元素的固定大小的顺序集合。Scala默认创建的是不可变数组,创建可变数组需要导入包
import scala.collection.mutable
定义方法一:

var a:Array[Int]=new Array[Int](3);
a(0)=0;  a(1)=1;  a(2)=2;
print(a(0)+" "+a(1)+" "+a(2)+"\n");

定义方法二:

var b=Array(0,1,2);
print(b(0)+" "+b(1)+" "+b(2));

数组的基本操作方法:

 var b=Array(0,1,2);
    print(b.length+"\n")  //输出数组长度
    print(b.head+"\n")    //输出数组的第一个元素
    print(b.tail+"\n")    //输出数组中除第一个元素以外的其他元素
    print(b.isEmpty+"\n") //判断数组是否为空
    print(b.contains(1)+"\n")  //判断数组是否包含此元素

连接两个数组可以使用“++”操作符,也可以使用concat方法(需要先import Array._引入包)

var a=Array("wu","you");
    var b=Array("16","jxnu");
    var c=a++b;
    print(c);

函数:
如果函数无返回值,即返回类型为Unit

def functionname(参数列表):返回类型={

}

匿名函数:
匿名函数即在定义函数的时候不给出函数名,匿名函数是使用箭头“=>”定义的,箭头左边是参数列表,右边是表达式,表达式将产生函数的结果。可以将函数赋值给一个常量或者变量,然后通过常量名后者变量名来调用该函数。

var addInt=(x:Int,y:Int)=>x+y;
    print(addInt(1,2));

如果函数中的每个参数在函数中最多出现一次,可以使用占位符“_”来代替参数。

var addInt=(_:Int)+(_:Int);
    print(addInt(1,2));

循环:
for循环

for (变量 <- 集合) { 循环语句 }

a to b表示从a到b的区间
a until b从a到b的区间,不包含b

var sums=0;
    for (i <- 1 to 4)
      {
        sums+=i; 
      }
    print(sums);

可以在for循环中使用if判断语句过滤一些元素,多个过滤条件用分号分隔。

for ( i <- 1 to 10;if i%2==0;if i>=6)
      println(i);

List:
定义

 var fruit:List[String]=List("apple","pears","oranges");
    print(fruit);

构造列表的两个基本单位是“Nil”和“::”;Nil可以表示空列表,::成为中缀操作符,表示列表从前端扩展,遵循右结合。

var fruit:List[String]="apple"::"pears"::"oranges"::Nil;
    print(fruit);

列表常用方法:

var fruit:List[String]="apple"::"pears"::"oranges"::Nil;
    println(fruit.head);  //返回列表第一个元素
    println(fruit.init)  //返回所有元素,除了最后一个
    println(fruit.last)  //返回最后一个远古三
    println(fruit.take(2))  //返回前n个元素

Set:
合并两个集合使用“++”,Scala默认创建的是不可变集合,若是创建可变集合,需要导入包import scala.collection.mutable.Set
定义:

val set:Set[Int]=Set(1,2,3,4,5);
    print(set);

head、init、last、tail、take、contains用法、意义同上。
Map:
Map中的键都是唯一的
定义

val person=Map("John"->21,"Betty"->20,"Mike"->22);
    println(person);

head、init、last、tail、take、contains用法、意义同上。

val person=Map("John"->21,"Betty"->20,"Mike"->22);
    println(person.keys);   //获取所有键
    println(person.values); //获取所有值
    print(person.isEmpty);  //判断是否为空

元组:
与列表类似的结构,但元组可以包含不同类型的元素,最多只能包含22个元素。
定义:

val t=(1,3.14,"a");
    println(t);
    val a=new Tuple3(1,3.14,"a");
    println(a);

相关文章: