Scala:try & match

Scala:try & match

try表达式

try表达式的语意与java中try…catch…finally是一样的。
但是try在scala中不是一个语句,而是一个表达式,会返回一个值。

首先看下面这个例子:

 val result_try = try {
      Integer.parseInt("Dog")
    } catch {
      case _ => 0
    } finally {
      println("always be printed")
    }

⚠️case _ => 0 中的下划线是通配符,可以通配所有对象。

  • Integer.parseInt(“Dog”)要把字符串"Dog"转换成int,显然回抛出异常。
  • 抛出异常后,就要进入catch。 case _ => 0中下划线这个通配符保证无论抛出什么异常,都可以被catch到,同时返回0。
  • finally和java中的语意是一样的——无论有没有抛出异常,都会执行finally这个代码块,永远会输出"always be printed"。

代码:

package com.leili.scala

object Demo {
  def main(args: Array[String]): Unit = {
    val result_try = try {
      Integer.parseInt("Dog")
    } catch {
      case _ => 0
    } finally {
      println("always be printed")
    }
   } 
}

输出:

always be printed

match 表达式

例如:

exp macth{  //主要用在pattern match中
	case p1 => val1
	case p2 => val2
	...
	case _=> valn
}
  • 如果表达式可以匹配上 p1,就会返回val1;
    ⚠️如果没有匹配上p1,就会去匹配p2
  • 如果表达式可以匹配上 p2,就会返回val2;
    ⚠️以此类推,如果前面的都没匹配上,就会去匹配case _ ,返回valn。
    ⚠️ “_”是通配符,可以匹配任何对象。

代码:

package com.leili.scala

object Demo {
  def main(args: Array[String]): Unit = {
     val code = 1
    val result_match = code match{
      case 1=>"one"
      case 2=>"two"
      case _ =>"n"
    }
    println(result_match)
   } 
}

输出:

one
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值