首页 > 代码库 > scala学习(一)

scala学习(一)

开始学习scala,有一种学习java的感觉。

首先,从网站下载scala的包,下载后要安装,安装后把安装目录的bin放到环境变量psth里

cmd里,输入scala,如果出现下图,那么恭喜咯,安装成功咯~~


 

1:变量

首先我们看下定义变量方法

var 可以定义变量,可以改变值

val 定义的变量不可以改变值,类似于java的final变量;

2:函数

 

如图定义了一个函数

def max(x:Int,y:Int):Int ={

if(x>y)x

else y

}

def:表面定义函数

max :函数名称

(x:Int,y:Int)函数的两个参数,分别是Int类型。注意Int不能小写;

:Int 返回类型是Int

大括号里是函数主体~

调用时可以直接调用

 max(9,10)

如果是没有参数也不用返回的函数可以如下写法:

def greet() = println("hello")


退出编辑器的方法  :quit


3:scala脚本

可以再文本文件中写scala脚本

        如下:args.foreach(arg => print(arg))

命名为:test.scala

然后cmd中就可以使用命令 scals test.scala ni hao me

ni hao me 就作为参数传入脚本中,进行了打印;

脚本解析:

脚本中调用了foreach方法,arg作为参数传入  =>   后面的是函数体 进行打印;

        for循环:

scala的for循环如下:

for(arg <- args) println(arg)

4:数组(Araay)

scala的数组可以如下:

var gree = Array("ni","hao","a")

for(i<- 0 to 2) println(gree(i))

这样就完成了一个数组的循环打印;


5:列表(list)

val onetwolist = List(1,2,3)    //这就是新建了一个list

list的方法:

:::表示可以吧两个list叠加到一起

::是可以吧元素加到list前面

但是list没有添加一个元素的方法,空list简称:Nil。但是可以通过对空list和元素的叠加,组成一个新的list

 


 list的方法汇总:

list() 或者 Nil     ---空list

val thrill = "i"::"am"::"niuxiao"::Nil               ----创建一个list

List("1","2"):::List("3","4")                    ----叠加两个list

thrill(2)                                          ----返回thrill的下标为2的元素

thrill.count(s => s.length==4)---返回thrill列表中长度为4的string元素个数

thrill.drop(2)---删除

thrill.dropRight(2)---从右边删除

thrill.exists(s => s=="am")---返回是否有为am的元素

thrill.filter(s => s.length ==4)---返回以长度为4的元素组成的新列表

thrill.forall(s => s.endsWith("1"))---返回是否列表所有元素都是以1结尾

thrill.foreach(print)---循环打印元素

thrill.head---返回列表第一个元素

thrill.init---返回除最后一个以外其他元素组成的列表

thrill.isempty---返回thrill列表是否为空

thrill.last

thrill.length

thrill.map(s => s+"4")---返回列表里每个string元素都加“4”构成的列表

thrill.mkString(",")---返回列表里元素组成的字符串,由,连接

thrill.remove(s => s.length==4)

thrill.reverse---返回列表元素逆序排列的新列表

thrill.sort((s,t) => s.charAt(0).toLowerCase < t.charAt(0).toLowerCase)     -----返回列表元素第一个字符字母小写后排序组成的新列表

thrill.tail ---返回除第一个元素外组成的新列表




6:元组(tuple)

元组和list的区别:

list都是同一类型的元素,元组可以是不同类型的元素

例如:val pair = (99,"nihao")

println(pair._1)

println(pair._2)

很方便哦~~