您的位置:首页 > 大数据

大数据系列修炼-Scala课程20

2016-08-16 17:07 399 查看
核心内容:

1、本地函数代码实战

2、作为一等公民的函数代码实战

1、scala中的本地函数
1>本地函数即内部函数,在一个函数内部定义的函数叫做本地函数,本地函数可以使用外部函数的形式参数,本地函数是外部函数的私有函数,外部其余成员不可以进行访问

def f()=
{
def g()={}
}


2>scala之所以支持内部函数,是因为函数在scala中是一等公民:函数可以当做变量一样来进行处理

示例代码1:本地函数

//本次程序的目的是内部函数(本地函数)
object App
{
def main(args:Array[String]):Unit=   //main函数的形式参数是一个字符串数组
{
val filename = args(0)
val width = args(1).toInt   //形式参数从args中进行传递

processData(filename,width)
}

def processData(filename:String,width:Int)=
{
val fr = Source.fromFile(filename)
for(line<- fr.getLines)  processLine(line) //读取行文本并进行处理
def processLine(line:String)=
{
if(line.length() > width) println(filename+":"+line)
}
}
}


运行结果:

C:\\word.txt:hello  she
C:\\word.txt:hello  she


实例代码2:函数的相关操作

//本次程序的目的是内部函数(本地函数)
object App
{
def main(args:Array[String]):Unit=   //main函数的形式参数是一个字符串数组
{
var a = (x:Int) => x+100   //scala中匿名函数的使用
println(a(200))  //300
val array = Array(-100,-50,0,10,20,30)
array.foreach { x => print(x) }
println
array.filter { x => x> 10 }.foreach { x => print(x) }
println
val f = (_:Int) + (_:Int)  //函数当做一个数值进行定义
println(f(5,100))
}
}


运行结果:

300
-100-500102030
2030
105
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: