scala学习笔记(二)

1.告诉编译器你希望这个参数被当做参数序列处理,追加":_*"即可,如:val s=sum(1 to 5:_*).
2.如果函数体包含在花括号当中但没有前面的=号,那么返回类型为Unit,这样的函数称为过程。过程不返回值,我们调用它仅仅是为了副作用。建议大家总是显示声明Unit 返回类型。
3.当val被声明lazy时,它的初始化将被推迟,直到我们首次对它取值。
4.try/catch:处理异常;try/finally:在异常没有被处理时执行某种动作,通常是清理工作。二者目的互补。可以组成try/catch/finally语句。throw表达式有特殊的类型Nothing,捕获异常的语法通常采用模式匹配的语法,如果你不需要使用捕获异常的对象,可以使用_来代替变量名。scala没有受检异常——你不需要声明说明函数或者方法可能会抛出某种异常。java有受检异常,必须做出声明,导致可能出现很长的方法签名。
5.异常工作机制:当前的程序的运算被停止,系统将运行控制权交给在离抛出点最近的异常处理器处理并恢复,如果没有找到符合要求的异常处理器,则程序退出。
6. Scala中的yield的主要作用是记住每次迭代中的有关值,并逐一存入到一个数组中.
7.在Scala里面的class和object在Java层面里面合二为一,class里面的成员成了实例成员,object成员成了static成员。
8.Scala里相当于Java接口的是Trait(特征)。Trait的英文意思是特质和性状(本文称其为特征),实际上他比接口还功能强大。与接口不同的是,它还可以定义属性和方法的实现。Scala中特征被用于服务于单一目的功能模块的模块化中。通过混合这种特征(模块)群来实现各种应用程序的功能要求,Scala也是按照这个构想来设计的。一般情况下Scala的类只能够继承单一父类,但是如果是特征的话就可以继承多个,从结果来看就是实现了多重继承。
9.scala里的类型,除了在定义class,trait,object时会产生类型,还可以通过type关键字来声明类型。
type相当于声明一个类型别名:
scala> type S = String
上面把String类型用S代替,通常type用于声明某种复杂类型,或用于定义一个抽象类型。
10.val值不可变,指的是val变量指向的对象不可变,不能指向第二个其他的对象,值不可变对于引用类型来说意味着指向的内存中的实际对象不变,他只约束了变量只能对应某个对象,但不约束所对应对象内部状态是否可以发生变化;var值可变,指的是var变量指向的对象任意可变。
11.变量定义: 
val:类似java中final类型的变量 
1,基本格式:val 变量名:变量类型 = 值
2,其中有时变量类型可以省略,可以自动识别
3,变量不能赋值,修改
var :等同于java中的非final型变量
12.函数定义
函数格式: def 函数名(参数列表,...):返回结果类型={}
有时函数必须制定返回结果类型,如函数时递归,就必须明确制定返回结果类型
有时如果函数仅 一个语句,连花括号都可以不写
接下来,是一个既不传参,也不返回有用结果的函数的定义,据说解析器返回
greeting():Unit,其中Unit值得时greetin的返回类型,类似于Java的void类型,而且Java中的void类型会被映射成Unit
例如:
   //写法一,始终待返回值
   def add(x:Int,y:Int):Int={
x+y} 
   def returnUnit():Unit={
 println("another way to return void") } 
   //写法二,省略非Unit返回值;如果没有写返回值,则根据等号后面的东西进行类型推演
   def test(x:Int)={
 x  }
   //写法三,省略等号,返回Unit
   def returnVoid(){
println("return void") } 
   //写法四:省略花括号,如果函数仅包含一条语句,那么连花括号都可以选择不写
   def max2(x: Int, y: Int) = if (x > y) x else y 
   def greet() = println("Hello, world!") 
   def f():unit
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还[基于Python]自己写的一个微信跳一跳自动游戏程序(针对安卓手机)。 全自动运行 自动适应不同分辨率 自动调整各个参数误差.zip行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值