Scala--控制结构和函数

条件表达式

if/else的表达式语法和java相似,只是须要注意的是:java

一、if/else有返回值编程

二、scala代码结尾不须要“;”,除非一行要写多条语句,这个和Python相似。bash

上图中,在scala脚本中,打印出了if的返回值0。函数

块语句

在scala中“{}”包含的一系列表达式,叫作块语句,块中最后一个表达式的值就是块的值scala

while循环

while循环,和java的while和do循环相同,这里就不过多讲解了,实例以下图所示。code

在"Repl"中写多行代码的时候,每写一行敲一下“回车键”而后它会自动去识别程序是否结束,直到你真正的写完代码,有时候不是很方便; 还有一种粘贴的方法,输入:paste而后就能够随意的写代码了,写完后Ctrl+D退出并运行代码,如上图所示。对象

for循环

for基础

语句结构:递归

for( i <- 表达式 )  #让变量i遍历<-右边的表达式的全部值,i具体执行取决于表达式
  循环体

for循环的变量以前没有val或var的指定,该变量的类型是集合的元素类型。循环变量的做用域一直持续到循环结束。 until:返回一个并不包含上线的区间。 scala中没有breakcontinue来退出循环,咱们能够这样操做作用域

  1. 使用Boolean的变量控制。
  2. 使用嵌套函数,能够从函数当中return。
  3. 使用Breaks对象的break方法。
  • eg:
breakable{
 for(...){
  if(...) break ;//#退出breakable块
} }

for进阶

  1. 在for循环“()”中可使用多个生成器, 用“;”隔开;
  2. 而且每个生成器均可以带一个**守卫**(if开头的Boolean表达式);
  3. 可使用变量,以下图所示:

  • 若是for循环的循环体以yield开始,该循环就会构造出一个集合,每次迭代就生成一个集合的值。

函数

基本语法

语法如图:it

(图来源于:Scala编程)

  1. 函数必须指定参数的类型
  2. 函数只要不是递归的就不须要指定返回值类型(由于没法推断出递归函数的类型)。
  3. 在函数中,不须要使用return。

函数参数

在函数中,咱们可使用默认参数。函数调用时:

一、若是没用给出全部参数,函数会使用默认参数(后面不够的参数使用默认值)。 二、也能够指定参数名,参数名不须要按顺序排列。 三、若是混合使用(未名参数和带名参数),只要未名参数排在前面便可。

四、变长参数,能够接受多个参数

def sum(args:Int*) = {
 var result = 0 ;
 for(arg <- args) result+=arg
  result
}

调用函数,sum(3,4,6,23,3),函数获得的是一个Seq类型的参数,注意调用函数是传入的参数不能是一个区间,eg: sum(2 to 9)是不能够的,应该为sum(2 to 9:_*);

过程

在scala中,若是函数没有返回值,那么该返回值类型咱们能够用Unit来表示,这种没有返回值的函数咱们称之为过程

上面省略了Unit,因为没有返回值也能够省略“=”号,下面语句相同:

相关文章
相关标签/搜索