2.Scala函数定义、流程控制、异常处理入门实战

把老师讲过的每个案例都重复写7次,在这里也和大家共勉。

一、函数的定义

1.无参数,无返回值

var定义的变量的值可以改变,val定义的变量的值不可以改变,是常量。

Scala编程时,在语句末尾可以不写分号,当然写上也可以。因为Scala语言设计者认为手指多按一个字符是件痛苦的事情。如果习惯了就好。

//7
package com.dt.scala.hello

object ScalaBasics{
  def main(args : Array[String]) : Unit = {
    doWhile()

    //doWhile

 } 
def doWhile(){
 var line = "" 
 do{
 line = readLine() 
  println("Read = "+ line) 
 }while(line != "") 
}

}
在main方法里调用的时候,doWhile 这样可以。没有参数的话一般都不写括号。这是Scala编程的惯例。readLine()这个方法来自Predef$这个类,scala程序默认导入的包中含有此类。

2.有参数,有返回值

 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
  }

在main里调用  println(looper(100,298)) 输出2

二、流程控制

1.if流程控制

   以下三种写法都可以(在main方法里,args是main方法的参数)
  

    //1
    var file = "scala.txt"
    if(!args.isEmpty) file = args(0)
    println(file)
    
    //2
    var file1 = if(!args.isEmpty) args(0) else "nihao.txt"
    println(file1)
   
    //3     
    println(if(!args.isEmpty) args(0) else "wohao.txt")


2.for循环流程控制

for(i <- 1 to 10) print(" " + i)

for(i <- 1.to(10)) print(" " + i)

输出 1 2 3 4 5 6 7 8 9 10

以上两种写法效果是一样的。第一种写法是第二种写法的略写。

在scala中,1是个对象,这个对象有个方法to().后面会详细讲解。

scala做到了一切皆对象,而java并没有,java并不是完全对象化的语言。

3.增强型for循环

var files = new java.io.File(".").listFiles()
for(file <- files) println(file)

输出

.\.cache-main
.\.classpath
.\.project
.\.settings
.\bin
.\src

4.静态代码块

object里的方法属性代码都是静态的,所以即使object里的代码没有被main调用,也会执行

var line = ""
  do{
    println("please input some words blow...")
    line = readLine()
    println("read: "+ line)
  }while(line != "")

三、异常处理

val n = 99
   try{
     val half = if(n % 2 == 0) println(n/2) else throw new RuntimeException("n must be event")
   }catch{
     case e : Exception => println("the exception is "+ e.getMessage())
   }finally{
     
   }
catch捕获异常,用case匹配。

以上就是今天的内容,勉励大家把每个例子重复7次,基础就会很扎实,不要眼高手低,试一试就知道重复7次的效果了。感恩!


参考资料来源于 DT大数据梦工厂 Scala零基础实战经典第2课 由王家林老师讲解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值