
Scala
文章平均质量分 69
u013392077
这个作者很懒,什么都没留下…
展开
-
Scala学习笔记-控制结构和函数(2)
7.函数scala除了方法外还支持函数。方法对对象进行操作,函数不是。要定义函数,需要给出函数名、参数和函数体,例如:def abs (x: Double) =if(x >= 0) x else -x只要函数不是递归的,一般不需要指定返回类型。scala编译器可以通过= 符号右侧的表达式的类型推断出返回类型如果函数体需要多个表达式完成,可以用代码块。块中最后一个表达式的值就是函原创 2017-10-19 17:01:03 · 264 阅读 · 0 评论 -
scala学习笔记-操作符
1.标识符变量、函数、类等的名称统称为标识符。2.中置操作符a 标识符 b,例如: 1 to 10 实际上是一个方法调用 1. to(10)这样的表达式称作中置表达式。3.一元操作符只有一个参数的操作符称为一元操作符。如果它出现在参数之后,那么它就是一个后置操作符。例如:a 标识符 等同于方法调用a.标识符()+、-、!、~可以作为前置操作符,出现在参数之前。它们原创 2017-11-27 09:39:20 · 315 阅读 · 0 评论 -
scala学习笔记-集合
主要的集合特质Iterable指的是那些能生成用来访问集合中所有元素的Iterator的集合:val coll= ... //某种Iterableval iter=coll.iteratorwhile (iter.hasNext) 对iter.next() 执行某种操纵这是遍历一个集合最基本的方式。SeqSeq是一个有先后次序的值的序原创 2017-11-28 18:09:03 · 312 阅读 · 0 评论 -
scala学习笔记-特质
1. 为什么没有多重继承scala和java一样不允许类从多个超类继承。但是scala提供“特质”而非接口。特质可以同时拥有抽象方法和具体方法,而类可以实现多个特质。2. 当做接口使用的特质scala特质完全可以像java接口那样工作。例如:trait Logger{ def log(msg:String)//抽象方法}不需要将方法声明为abstract——特质中未原创 2017-11-10 19:46:10 · 260 阅读 · 0 评论 -
scala学习笔记-文件和正则表达式
1. 读取行读取文件中的所有行: 调用scala.ios.Source对象的getLines方法:import scala.ios.Sourcevar source=Source.fromFile("myfile.txt","utf-8")//第一个参数可以是字符串或者java.io.File//第二个字符编码可以省略val lineIterator =source.getLine原创 2017-11-09 09:50:44 · 388 阅读 · 0 评论 -
scala学习笔记-对象
1. 单例对象 Scala没有静态方法或者静态字段,可以用object这个语法结构来达到同样目的。对象定义了某个类的单个实例,包含了你想要的特性:object Account{private var lastNumber =0 def newUniqueNumber() = { lastNumber+ =1; lastNumber}}当你在应用程序中需要一个新的唯一账号原创 2017-10-23 16:58:35 · 179 阅读 · 0 评论 -
scala学习笔记-继承
1. 扩展类scala扩展类的方式与Java一样——使用extends关键字类声明为final就不能被扩展单个方法或字段声明为final,可以确保不能重写(Java中final字段是不可变的,类似scala中的val)2. 重写方法在scala中重写一个非抽象方法必须使用override修饰符scala中调用原创 2017-10-24 17:03:05 · 258 阅读 · 0 评论 -
scala学习笔记-类
1. 简单类和无参方法scala类最简单的形式与Java类似:class Counter{private var value=0 //必须初始化字段def increment(){ value+=1} //方法默认是公有的def current() =value}在scala中,类并不声明为public。scala源文件可以包含多个类,所有类都具有公有可见性使用原创 2017-10-23 14:36:36 · 233 阅读 · 0 评论 -
scala找不到或无法加载主类 com.ase.Main
scala突然出现这个错误,网上查了很久,各种原因都排除了,最后发现是编码不一致问题,项目的编码是GBK,其中一个class 或者object 是UTF-8。这种情况下,只要修改一致就可以了原创 2017-11-08 16:51:58 · 3807 阅读 · 0 评论 -
Scala学习笔记-映射和元组
1.构造映射映射是键值对偶的集合。1)不可变映射,其值不能被修改val scores=Map(" Alice"->10,"bob"->3,"merry"->5)或者val scores=Map((" Alice",10),("bob",3),("merry",5))2)可变映射val scores=scala.collect.mutable.Map(" Alice"->10原创 2017-10-20 09:40:09 · 339 阅读 · 0 评论 -
Scala学习笔记-数组相关操作
1. 定长数组如果需要一个长度不变的数组,可以使用scala中的Array。例如 val nums=new Array[Int](10)val s=Array("Hello","world")s(0)="GoodBye" 2. 变长数组:数组缓冲对于长度需要变化的数组,Java有ArrayList,C++有vector。Scala中数据结构ArrayBuffer原创 2017-10-19 17:44:00 · 280 阅读 · 0 评论 -
Scala学习笔记-基础
1.声明值和变量、1)可以自己定义变量名称,以val 定义的值实际上是一个常量,你无法改变他的内容例如:val answer=8*5+2answer=0 (错误)如果要声明其值可变的变量,可以用var:例如:val answer=8*5+2answer=0 (正确)scala中鼓励使用val2)2.scala中,在变量声明或赋值语句之后,并不需要原创 2017-10-19 15:25:54 · 247 阅读 · 0 评论 -
Scala学习笔记-控制结构和函数(1)
1. 条件表达式 scala的if/else语法结构和Java一样。不过,在scala中if/else表达式有值,这个值就是跟在if或者else之后的表达式的值。例如: if(x>0) 1 else -1可以将if/else表达式的值赋给变量: val s=if(x>0) 1 else -1这与 if(x>0) s=1 else s=-1 效果一样。但是第一种写法可以初始化一个原创 2017-10-19 15:58:09 · 266 阅读 · 0 评论 -
scala学习笔记-高阶函数
作为值的函数在scala中,函数是头等公民,就和数字一样。可以在变量中存放函数:val fun=ceil_将fun设为ceil函数,ceil函数后的_意味着你确实指的是这个函数,而不是碰巧忘记了给它送参数说明:从技术上讲,)将ceil方法转换成了函数。在scala中,你无法直接操纵方法,而只能直接操纵函数,方法不能作为单独的表达式而存在(参数为空的方法除外),而函数可以被调用;原创 2017-11-27 22:40:43 · 279 阅读 · 0 评论