过程

在Scala中,定义函数时,如果函数体直接包裹在了花括号里面,而没有使用=连接,则函数的返回值类型就是Unit。这样的函数就被称之为过程。过程通常用于不需要返回值的函数。 过程还有一种写法,就是将函数的返回值类型定义为Unit。

1 def sayHello(name: String) = "Hello, " + name
2 def sayHello(name: String) { print("Hello, " + name); "Hello, " + name }
3 def sayHello(name: String): Unit = "Hello, " + name

lazy值

在Scala中,提供了lazy值的特性,也就是说,如果将一个变量声明为lazy,则只有在第一次使用该变量时,变量对应的表达式才会发生计算。这种特性对于特别耗时的计算操作特别有用,比如打开文件进行IO,进行网络IO等。

1 import scala.io.Source._
2 lazy val lines = fromFile("C://Users//Administrator//Desktop//test.txt").mkString

即使文件不存在,也不会报错,只有第一个使用变量时会报错,证明了表达式计算的lazy特性。

1 val lines = fromFile("C://Users//Administrator//Desktop//test.txt").mkString
2 lazy val lines = fromFile("C://Users//Administrator//Desktop//test.txt").mkString
3 def lines = fromFile("C://Users//Administrator//Desktop//test.txt").mkString

异常

 1 在Scala中,异常处理和捕获机制与Java是非常相似的。
 2
 3 try {
 4   throw new IllegalArgumentException("x should not be negative")
 5 } catch {
 6   case _: IllegalArgumentException => println("Illegal Argument!")
 7 } finally {
 8   print("release resources!")
 9 }
10
11 try {
12   throw new IOException("user defined exception")
13 } catch {
14   case e1: IllegalArgumentException => println("illegal argument")
15   case e2: IOException => println("io exception")
16 }

转载于:https://www.cnblogs.com/HeQiangJava/p/6706944.html

scala学习笔记-过程、lazy值和异常(6)相关推荐

  1. Scala学习笔记(一)

    Scala学习笔记(一) 一.Scala简介 二.Scala安装与配置 1. 安装JDK 2. 安装Scala SDK 3. 安装IDEA插件 三.Scala解释器 1. 启动Scala解释器 2. ...

  2. Scala学习笔记(三)

    Scala学习笔记(三) 一.模式匹配 1. 简单模式匹配 2. 匹配类型 3. 守卫 4. 匹配样例类 5. 匹配数组 6. 匹配列表 7. 匹配元组 8. 变量声明中的模式匹配 8.1 获取数组中 ...

  3. Windows异常学习笔记(一)—— CPU异常记录模拟异常记录

    Windows异常学习笔记(一)-- CPU异常记录 基础知识 异常的分类 CPU异常 分析中断处理函数 _KiTrap00 分析 CommonDispatchException 总结 软件模拟异常 ...

  4. 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记...

    机器学习实战(Machine Learning in Action)学习笔记----06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习 作者:米仓山下 时 ...

  5. Scala学习笔记04:内建控制结构

    Scala学习笔记04:内建控制结构 scala提供的控制结构并不算多,因为在函数式编程中,可以自己开发出各种功能的控制结构,所以scala提供的原生控制结构仅仅够用为止. 1.if - 判断 if是 ...

  6. Scala 学习笔记

    Scala 学习笔记 1 object func_exp { 2 println("Welcome to the Scala worksheet") //> Welcome ...

  7. Scala学习笔记03:操作符

    Scala学习笔记03:操作符 一.scala中操作符与方法的等价性 scala中操作符即方法.方法即操作符.scala中操作符其实是普通方法调用的另一种表现形式,运算符的使用其实就是隐含地调用对应的 ...

  8. Scala学习笔记02:数据类型、常量与变量

    Scala学习笔记02:数据类型.常量与变量 一.数据类型 1.基本数据类型 Byte 字节型 Short 短整型 Int 整型 Long 长整型 Char 字符型 String 字符串 Float ...

  9. OpenCV 学习笔记-day13 像素值统计 统计计算最大最小值,平均值和标准差 (minMaxLoc()和meanStdDev()函数的使用)

    OpenCV 学习笔记 day13 像素值统计 函数 minMaxLoc(); 最大值最小值统计 meanStdDev();平均值和标准方差统计 代码 day13 像素值统计 函数 minMaxLoc ...

最新文章

  1. bootstraptable 汇总_JS组件系列——表格组件神器:bootstrap table
  2. 架构与思维:系统容量设计
  3. 【翻译】旧技术成就新勒索软件,Petya添加蠕虫特性
  4. 如何用计算机加出5281314,电脑每次开机进入桌面后都黑屏两次,然后就好了,什么情况?怎么处理...
  5. python多线程实现生产者消费者_用Python实现多线程“生产者-消费者”模型的简单例子...
  6. 块语法Block在MVC思维的妙用之多重M层代理传值
  7. PHP中间件ICE,ICE的安装配置,ICE常见编译和运行(异常)错误(自测Php版本安装部分,因为php版本跟ice版本不一样失败)
  8. 工作244:根据页面的内容调用
  9. 创业版上市与SAP管理软件系统的关系
  10. Linux 命令(14)—— df 命令
  11. 方差-偏差平衡(Bias-Variance Balance)与模型选择
  12. 【雷达】一维和二维自适应波束形成(DBF))DBF附matlab代码
  13. Python爬虫五:微信公众号爬虫-2018.9
  14. JavaWEB笔记 浏览器内核及分类
  15. 单面打印机双面打印———python pdf拆分重排
  16. sql 语句 where in的使用 where like %我
  17. MonthCalendar上使ToolTip随鼠标位置实时变化
  18. 安卓端身份证识别与云端服务器识别
  19. 一文搞懂 php 中的 DI 依赖注入
  20. I2C 专题(一)I2C 简介

热门文章

  1. Pascal's Triangle
  2. 小霸王双核/四核手机最新参数曝光
  3. android屏幕分辨率详解 ldpi mdpi hdpi 程序UI自适应 《官方翻译》
  4. 无线网中的一些技术名词和解释
  5. 交易所频频被盗,你该如何保护自己的数字资产?
  6. 以太坊智能合约开发第二篇:理解以太坊相关概念
  7. 小狗钱钱_✅每次构建待办事项列表应用程序时,都会有一只小狗? 死了?
  8. k8s aws 部署_如何在短短30分钟内使用CircleCI设置到AWS S3的持续部署
  9. 学生教育云平台登录入口_湖南省教育云平台登录入口
  10. 热修复测试过程注意事项