scala笔记四
来源:互联网 发布:mac怎么打出@ 编辑:程序博客网 时间:2024/06/07 09:04
Scala可以使用两种形式的标志符,字符数字和符号。
字符数字使用字母或是下划线开头,后面可以接字母或是数字,
符号”$”在Scala中也看作为字母。
以“$”开头的标识符为保留的Scala编译器产生的标志符使用,应用程序应该避免使用“$”开始的标识符,以免造成冲突
1
var
filename
=
"default.txt"
2
if
(!args.isEmpty)
3
filename
=
args(
0
)
上面代码和使用Java实现没有太多区别,看起来不怎么像Scala风格,我们重新改写一下,利用if可以返回结果这个特点。
1
val
filename
=
2
if
(!args.isEmpty) args(
0
)
3
else
"default.txt"
使用val为函数式编程风格。
Scala 的while 和 do-while 称为“循环”而不是表达式,是因为它不产生有用的返回值
1
scala>
def
greet() { println(
"hi"
)}
2
greet
:
()Unit
3
4
scala> greet()
==
()
5
<console>
:
9
:
warning
:
comparing values of types Unit and Unit using `
==
' will always
yield
true
6
greet()
==
()
7
^
8
hi
9
res
0
:
Boolean
=
true
推荐尽量避免在代码使用while循环,正如函数化编程要避免使用var变量一样。 而使用while循环时通常也会使用到var变量
改成只列出.scala文件如下:
1
val
filesHere
=
(
new
java.io.File(
"."
)).listFiles
2
3
for
( file <-filesHere
4
if
file.isFile
5
if
file.getName.endsWith(
".scala"
)
6
) println(file)
技术上来说,抛出异常的类型为Nothing
try
{
6
val
f
=
new
FileReader(
"input.txt"
)
7
}
catch
{
8
case
ex
:
FileNotFoundException
=
>
//handle missing file
9
case
ex
:
IOException
=
>
//handle other I/O error
10
}
通常情况下,finally块用来做些清理工作,而不应该产生结果,但如果在finally块中使用return来返回某个值,这个值将覆盖try-catch产生的结果,比如:
1
scala>
def
f()
:
Int
=
try
{
return
1
}
finally
{
return
2
}
2
f
:
()Int
3
4
scala> f
5
res
0
:
Int
=
2
而下面的代码:
1
scala>
def
g()
:
Int
=
try
1
finally
2
2
g
:
()Int
3
4
scala> g
5
res
0
:
Int
=
1
结果却是1,上面两种情况常常使得程序员产生困惑,因此关键的一点是避免在finally生成返回值,而只用来做些清理工作,比如关闭文件。
scala中match表达式跟java中swith的区别:一是任何类型的常量都可以用在case语句中,而不仅仅是int或是枚举类型。
二是每个case语句无需使用break,Scala不支持“fall through”。
三是Scala的缺省匹配为”_”,其作用类似java中的default.
四是scala的match表达式有返回值
1
val
firstArg
=
if
(args.length >
0
) args(
0
)
else
""
2
val
friend
=
firstArg
match
{
3
case
"salt"
=
>
"pepper"
4
case
"chips"
=
>
"salsa"
5
case
"eggs"
=
>
"bacon"
6
case
_
=
>
"huh?"
7
}
8
9
println(friend)
0 0
- scala笔记四
- Scala学习笔记(四)
- scala学习笔记四----scala基础知识学习
- [Scala]Scala学习笔记四 类
- scala学习笔记(四)
- Scala入门学习笔记四--List使用
- Scala 学习笔记(四)------定义递归函数
- 快学Scala笔记(四)
- scala学习笔记(四)流程控制
- Scala学习笔记(四)react/receive对比
- Scala School 笔记(四)--类型和多态基础
- scala学习笔记(四) 映射与元组
- Scala学习笔记(四)----private的访问权限
- scala学习笔记(四)样本类与模式匹配
- scala 笔记
- Scala笔记
- scala笔记
- scala笔记
- 【悟】发版之夜
- 【PAT 】1024.Palindromic Number (25) 字符操作+大数相加
- android解决方法数超过65536问题
- 重新开始打代码。
- Composer安装详解
- scala笔记四
- 在Word中写出像LaTeX一样的公式
- 利用 ViewPager 等,实现带小圆球的图片滑动,并且只有第一次安装app时才出现欢迎界面(图片)
- 工具类生成mybatis的Mapper类和xml文件以及实体
- 解决Windwos Server 2008缓存耗用大量物理内存
- 图片色彩反转与灰度
- C语言:选择排序
- 数据结构 线性表JAVA实现
- Android动画(1)--帧动画