博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Scala学习第二天 Scala函数定义、流程控制、异常处理
阅读量:2200 次
发布时间:2019-05-03

本文共 1752 字,大约阅读时间需要 5 分钟。

信息来源于 DT大数据梦工厂微信公众账号:DT_Spark

1、Scala的函数定义
定义函数,需要给出函数的名称、参数和函数体,按照以下格式定义scala函数.

def 函数名称(函数输入参数类型): Unit{        //函数的实现提}

1.2 没有输入参数的函数

可以看到输出语句的结尾没有以“;”结束,因为scala的设计者认为,
多敲一次键盘没有必要,对开发者来说是痛苦的。 他不太赞成在语句的
结束写 “;” , 但你也可以写 “;” 结束.

def doWhile() {    var line = ""    do {    //readLine读取键盘输入的内容,再由println输出。      line = readLine()      println("Read: " + line)    } while (line != "")  }  def main(args: Array[String]) = {    doWhile  }

//dowhile循环先执行一次,在判断while的条件是否满足,如果没有输出则停止,否则一直继续下去。

1.3有输入参数的函数

def looper(x: Long, y: Long): Long = {    var a = x    var b = y    while (a != 0) {      val temp = a      a = b % a      b = temp    }    b  }  def main(args: Array[String]) = {    println(looper(100, 298))  }   //然后运行这段代码,得到以下值:  2

/*参数x、y是Long类型,再由100赋值a,298赋值b,判断a是否不

等于0,不等于0,则进入循环体,a赋值给temp,a对b取模,再把
可以看出最后结果是2.*/
2 流程控制

2.1 if

def main(args: Array[String]) = {    var file = "scala.txt"    if (!args.isEmpty) {      file = args(0)    }    println(file);    //如果有输入值,赋值给file,否则默认输出"scala.txt".  }

2.2 for

def main(args: Array[String]): Unit = {    for (i <- 1.to(10)) {      //从1到10循环输出。<-代表从1开始      println("Number is: " + i)    }      }

2.3 增强for

def main(args: Array[String]): Unit = {    val files = (new java.io.File(".")).listFiles()    for (file <- files) {    //打印当前目录下的文件      println("当前路径下有文件 -> "+file)    }  }

3 异常处理

异常处理与Java类似,不同点在于catch是根据case类型匹配异常,

def main(args: Array[String]): Unit = {    val n = 99    try {      val half = if (n % 2 == 0) n / 2      else throw new RuntimeException("N must be event")    } catch {      case e: Exception => println("The exception is:" + e.getMessage)    } finally {    }  }

与case e匹配,输出The exeception is N must be event.

Scala 深入浅出实战经典(1-64讲)完整视频、PPT、代码下载:

百度云盘:

腾讯微云:

360云盘: 访问密码 45e2

转载地址:http://wrrub.baihongyu.com/

你可能感兴趣的文章
算法导论阅读顺序
查看>>
Windows程序设计:直线绘制
查看>>
linux之CentOS下文件解压方式
查看>>
Django字段的创建并连接MYSQL
查看>>
div标签布局的使用
查看>>
HTML中表格的使用
查看>>
(模板 重要)Tarjan算法解决LCA问题(PAT 1151 LCA in a Binary Tree)
查看>>
(PAT 1154) Vertex Coloring (图的广度优先遍历)
查看>>
(PAT 1115) Counting Nodes in a BST (二叉查找树-统计指定层元素个数)
查看>>
(PAT 1143) Lowest Common Ancestor (二叉查找树的LCA)
查看>>
(PAT 1061) Dating (字符串处理)
查看>>
(PAT 1118) Birds in Forest (并查集)
查看>>
数据结构 拓扑排序
查看>>
(PAT 1040) Longest Symmetric String (DP-最长回文子串)
查看>>
(PAT 1145) Hashing - Average Search Time (哈希表冲突处理)
查看>>
(1129) Recommendation System 排序
查看>>
PAT1090 Highest Price in Supply Chain 树DFS
查看>>
(PAT 1096) Consecutive Factors (质因子分解)
查看>>
(PAT 1019) General Palindromic Number (进制转换)
查看>>
(PAT 1073) Scientific Notation (字符串模拟题)
查看>>