- 1
- 0
- 约4.73千字
- 约 7页
- 2020-11-07 发布于江苏
- 举报
Read Eval Print Loop (REPL)
REPL在Scala里面指是直接运行scala.exe进入交互式命令行模式。广义上讲,也泛指那些在线编程工具。
关键规则1:请使用REPL来熟悉Scala语言。
ScalaREPL有个好处是能够将我们输入每行代码内部表示反馈出来。比如:
scala def add(a:Int, b:Int):Int = a + b
add: (a: Int, b: Int)Int
我们定义一个函数,完成两个数加法。Scala回显给我们内容能够帮助我们写代码。
表示式和语句
表示式和语句区分是:语句是用来实施,而表示式是用来求值。在程序员世界里,表示式就是返回值,语言就是没有返回值实施程序。
Scala是表示式导向编程语言。但并不是100%成立,Scala代码中还是有控制语块,毕竟我们写程序就是为了控制多种实体为我们服务。
关键规则2:使用表示式,而不是语句。
这条规则关键是帮助我们简化代码,就像前面加法例子,a+b就是一个表示式。相比于我们C语言写相同实现,简单不好。代码里面,像这么例子肯定还是存在很多。
不要使用Return
当我们使用表示式时候,就不需要Return了。因为表示式本身就是用来求值,我们必需再去显式地说我现在要返回什么。Scala编译器自动使用最终一个表示式返回值作为函数返回值。
我们应该记得一个编程指导意见就是函数在同一个地方返回。假如我们现在没有Return语句了,像在Scala中,有没有类似编程指导呢?看个例子:
object NoReturn extends scala.App {
def createErrorMessage1(errorCode : Int) : String = {
val result = errorCode match {
case 1 = Network Failure
case 2 = I/O Failure
case 3 = Unknown Error
}
return result
}
def createErrorMessage2(errorCode: Int) : String = {
var result : String = null // not val
errorCode match {
case 1 =
result = Network Failure
case 2 =
result = I/O Failure
case _ =
result = Unknown Error
}
return result;
}
def createErrorMessage3(errorCode : Int) : String = {
errorCode match {
case 1 = Network Failure
case 2 = I/O Failure
case 3 = Unknown Error
}
}
println(createErrorMessage1(1))
println(createErrorMessage2(2))
println(createErrorMessage3(3))
println(1 match{case 1 = Network Failure case 2 = 3})
println(2 match{case 1 = Network Failure case 2 = 3})
}
createErrorMessage2应该是我们以往写法。定义一个局部变量,然后匹配errorCode,对其进行赋值。createErrorMessage1是Scala推荐写法(即使还不够简练),它使用是val而不是var,来申明临时变量。val表示值,赋值后就不许可再更改;var是变量,能够反复赋值。createErrorMessage1result以后是一个表示式。求值以后直接就赋值了。createErrorMessage3就愈加简练了,差不多到了终极形态了。函数直接就返回一个表示式,少了临时对象。
注:match case支持每个分支返回类型不一样。这个特征在函数式编程中很有用。
Scala即使支持全部3中写法,不过推荐最终一个。因为它帮助简化了代码复杂度,增加了程序不可变性。不可变指是程序在实施过程中,全部
您可能关注的文档
- 汽车四S店财务管理新规制度.doc
- 汽车四S店钣喷车间维修质量管理新规制度.doc
- 汽车平视显示器HUD中文说明指导书.doc
- 汽车服务四S店售后服务作业流程.doc
- 汽车煤采样管理统一标准.doc
- 汽车玻璃的国标与日本JIS统一标准的区别对照表检验方法.doc
- 汽车理论A实验试验参考指导书.doc
- 汽车电器实训重点项目及内容hndx.doc
- 汽车电子控制关键技术课程统一标准.doc
- 汽车租赁合同统一标准模板.doc
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)