scala学习笔记-过程、lazy值和异常(6)
过程
在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)相关推荐
- Scala学习笔记(一)
Scala学习笔记(一) 一.Scala简介 二.Scala安装与配置 1. 安装JDK 2. 安装Scala SDK 3. 安装IDEA插件 三.Scala解释器 1. 启动Scala解释器 2. ...
- Scala学习笔记(三)
Scala学习笔记(三) 一.模式匹配 1. 简单模式匹配 2. 匹配类型 3. 守卫 4. 匹配样例类 5. 匹配数组 6. 匹配列表 7. 匹配元组 8. 变量声明中的模式匹配 8.1 获取数组中 ...
- Windows异常学习笔记(一)—— CPU异常记录模拟异常记录
Windows异常学习笔记(一)-- CPU异常记录 基础知识 异常的分类 CPU异常 分析中断处理函数 _KiTrap00 分析 CommonDispatchException 总结 软件模拟异常 ...
- 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记...
机器学习实战(Machine Learning in Action)学习笔记----06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习 作者:米仓山下 时 ...
- Scala学习笔记04:内建控制结构
Scala学习笔记04:内建控制结构 scala提供的控制结构并不算多,因为在函数式编程中,可以自己开发出各种功能的控制结构,所以scala提供的原生控制结构仅仅够用为止. 1.if - 判断 if是 ...
- Scala 学习笔记
Scala 学习笔记 1 object func_exp { 2 println("Welcome to the Scala worksheet") //> Welcome ...
- Scala学习笔记03:操作符
Scala学习笔记03:操作符 一.scala中操作符与方法的等价性 scala中操作符即方法.方法即操作符.scala中操作符其实是普通方法调用的另一种表现形式,运算符的使用其实就是隐含地调用对应的 ...
- Scala学习笔记02:数据类型、常量与变量
Scala学习笔记02:数据类型.常量与变量 一.数据类型 1.基本数据类型 Byte 字节型 Short 短整型 Int 整型 Long 长整型 Char 字符型 String 字符串 Float ...
- OpenCV 学习笔记-day13 像素值统计 统计计算最大最小值,平均值和标准差 (minMaxLoc()和meanStdDev()函数的使用)
OpenCV 学习笔记 day13 像素值统计 函数 minMaxLoc(); 最大值最小值统计 meanStdDev();平均值和标准方差统计 代码 day13 像素值统计 函数 minMaxLoc ...
最新文章
- bootstraptable 汇总_JS组件系列——表格组件神器:bootstrap table
- 架构与思维:系统容量设计
- 【翻译】旧技术成就新勒索软件,Petya添加蠕虫特性
- 如何用计算机加出5281314,电脑每次开机进入桌面后都黑屏两次,然后就好了,什么情况?怎么处理...
- python多线程实现生产者消费者_用Python实现多线程“生产者-消费者”模型的简单例子...
- 块语法Block在MVC思维的妙用之多重M层代理传值
- PHP中间件ICE,ICE的安装配置,ICE常见编译和运行(异常)错误(自测Php版本安装部分,因为php版本跟ice版本不一样失败)
- 工作244:根据页面的内容调用
- 创业版上市与SAP管理软件系统的关系
- Linux 命令(14)—— df 命令
- 方差-偏差平衡(Bias-Variance Balance)与模型选择
- 【雷达】一维和二维自适应波束形成(DBF))DBF附matlab代码
- Python爬虫五:微信公众号爬虫-2018.9
- JavaWEB笔记 浏览器内核及分类
- 单面打印机双面打印———python pdf拆分重排
- sql 语句 where in的使用 where like %我
- MonthCalendar上使ToolTip随鼠标位置实时变化
- 安卓端身份证识别与云端服务器识别
- 一文搞懂 php 中的 DI 依赖注入
- I2C 专题(一)I2C 简介