类 / 对象 [<快学Scala>笔记] 一.类 1.Scala中的类是公有可见性的,且多个类可以包含在同一个源文件中: class Counter{ private var value = 0 //类成员变量必须初始化,否则报错 def increment(){ //类中的方法默认是公有可见性 value += 1 } def current() = value //对于类中的“取值方法”,在定义时可省略掉括号,直接 def current = value } Scala类的使用: Scal…
object 在scala中没有静态方法和静态字段,所以在scala中可以用object来实现这些功能,直接用对象名调用的方法都是采用这种实现方式,例如Array.toString.对象的构造器在第一次使用的时候会被调用,如果一个对象从未被使用,那么他的构造器也不会被执行:对象本质上拥有类(scala中)的所有特性,除此之外,object还可以一扩展类以及一个或者多个特质:例如, abstract class ClassName(val parameter){} object Test exte…
在 Scala 中,是没有 static 这个东西的,但是它也为我们提供了单例模式的实现方法,那就是使用关键字 object. 对象的无参构造器在第一次使用时被调用,且单例对象没有有残构造器. Enumeration类 scala并没有提供枚举类,而是通过对象继承Enumeration类实现枚举类,并且调用Value方法来初始化枚举值. object Test extends Enumeration{ val name = Value(0, "name_0") val sex = Va…
枚举 scala不用关注枚举的特别语法,取而代之的是标准库中的类, scala.Enumeration 想要创建新的枚举,只需要拓展这个类的对象即可 object Color extends Enumeration{ val Red = Value val Green = Value val Blue = Value } object Test3{ def main(args:Array[String]):Unit={ for (dir <- 0 to Direction2.maxId-1){…
object Color extends Enumeration(2){ val Red,Green,Blue = Value val Yellow = Value("YELLOW") } import Color._ println(Red) // Red 类型为 Color.Value,Color是路径,Value是依赖类型,它是全新的类型,与其他所有的类型都不一样. println(Green.id) println(Color(2)) // Red…
第七步:带类型的参数化数组 Scala里可以使用new实例化对象或类实例.当你在Scala里实例化对象,可以使用值和类型把它参数化:parameterize.参数化的意思是在你创建实例的时候“设置”它.通过把加在括号里的对象传递给实例的构造器的方式来用值参数化实例.例如,下面的Scala代码实例化一个新的java.math.BigInteger并使用值"12345"参数化: val big = ") 通过在方括号里设定一个或更多类型来参数化实例.通过在方括号里设定一个或更多类…
第一步:学习使用Scala解释器 开始Scala最简单的方法是使用Scala解释器,它是一个编写Scala表达式和程序的交互式“shell”.在使用Scala之前需要安装Scala,可以参考 First Steps to Scala 内容. 你可以在命令提示符里输入scala使用它: $ scala Welcome to Scala version 2.9.2. Type in expressions to have them evaluated. Type :help for more inf…
使用类型参数化数组(Array) 创建java.math.BigInteger实例: var big = new java .math.BigInteget("12345678") 对数组进行访问:圆括号形式 val greetingStrings :Array[String] = new Array[String] (3) greetingStrings(0) = "hello" 注:val定义变量,变量不能被重新赋值,单变量内部指向的内部对象仍可以改变. gre…
#映射: 包含一组键值对应元素的集合 val Z=Map(a1->b1,...) //a1如果是字符,需要用双引号括起来 val Z=Map((a1,b1),...) ##可变映射, 内容可更改 val Y=scala.collection.mutable.Map((a1,b1)...) val X=new scala.collection.mutable.Map[T1,T2] #获取值 val a=Z(an) //返回值 val b=Z.get(an) #检查 键 val c=Z.con…
#判断 scala> def min(x:Int,y:Int):Int={ var a=x if(x>y) a=y return a } scala> min(1,2)res1: Int = 1 #循环 ##引申:函数式编程里面尽量使用常量,所以尽量避免 while do? 变量? while (A) B do B while A scala> var m=3scala> while (m!=0){ println(m) m-=1 } 321 #枚举 for (i<…
1 var 可变,val 不可变 var (a,b) = (10,20) 分别对a,b赋值 a=10, b=20 var a,b = (10,20)则 是a=(10,20) b=(10,20) 2 List List是不可变的,与Java中String类似,操作List返回的是新的List对象. val l = List(1,2,3,4,5) List元素类型一致 3 Map Set (1) 不可变 var jetSet = Set("Boeing", "Airbus&quo…